私のアプリケーションでは、電話がポートレートモードで保持されている場合、ファイル名を取得できます。
電話を回転させると、同じファイルが設定を取得するために使用されていますが、この特定の設定は空白に戻ります。
この設定に書き込む1つの関数を確認しましたが、電話を回転させても呼び出されません。
sharedpreferences
それで、電話を回転させることによる変化の原因は何でしょうか?
これが私が使用するコードです:
static String retrieveStoredFilename(Context context) {
SharedPreferences myPrefs = context.getSharedPreferences(PREF_NAME,
Context.MODE_PRIVATE);
String s = myPrefs.getString(FILENAME, "");
return TextUtils.isEmpty(s) ? (String) null : s;
}
それが役立つ場合に備えて、ここにいくつかのコードがあります。これは、回転によって実際に台無しにされたフラグメントからのものです。onResumefilename
では、回転後にnullに設定されますが、それ以降は、回転して戻ってもnullになります。
@Override
public void onPause() {
super.onPause();
mIV.getBitmap().recycle();
mIV.setImageResource(R.drawable.ic_action_search);
if (myBitMap != null)
myBitMap.recycle();
}
@Override
public void onResume() {
super.onResume();
filename = ControllerFragment.retrieveStoredFilename(getActivity());
getBitmap(filename);
mIV.invalidate();
}
そして、2つの定数は次のとおりです。
public static String FILENAME = "filename";
public static String PREF_NAME = "photobrowser";