以下のコードはデバイス上で動作しますが、本番環境ではクラッシュしています。 アクティビティのコンテキストを渡していますnewInstance
コールバック内のフラグメントコンテキスト
PreferenceManager.getDefaultSharedPreferences()
でのコンテキストの使用方法を教えてください。
これは、デバイスによって異なる動作をしますか? (同じアンドロイド版)
public class MyFragment extends Fragment {
...
private api myApi;
private Context context;
public static MyFragment newInstance(Context context, ...) {
MyFragment frag = new MyFragment();
frag.context = context;
return frag;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
...
api = new MyApi(this.context);
update();
}
private update() {
api.getData(new Callback<GenericMobileResponse<ArrayList<MyData>>>() {
@Override public success(GenericMobileResponse<ArrayList<MyData>> genericMobileResponse, Response response) {
ArrayList<MyData> data = genericMobileResponse.getData();
updateItems(data);
}
})
}
private updateItems(ArrayList<MyData>) {
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this.context); //Crash! getContext()? this.context? getActivity()? getApplicationContext()
}
}