我寫一個Android應用程序,我的形式接受數據,然後調用Android相機爲通過下面的代碼的圖片上傳:相機API調用破壞父活動
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
fileUri = getOutputMediaFileUri();
intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);
// start the image capture Intent
startActivityForResult(intent, CAMERA_CAPTURE_IMAGE_REQUEST_CODE);
呼叫工作得很好,相機圖像成功返回。但問題出現在這之後。
我一直在測試2-3電話,分別是:1。 A116福邦2. 三星Galaxy大 3.小蜜
應用程序運行的Micromax的手機上就好了。
三星手機有一個問題,導致旋轉應用程序崩潰。我找到了一個修補程序,下面添加到清單:
android:configChanges="orientation|keyboardHidden|screenSize"
但是,小米手機有一個問題。它似乎總是調用「onCreate()」方法,每次相機意圖返回一個圖像。這擾亂了我從用戶接受的以前的表單數據,通過做出不必要的API調用。
我試圖通過下面的代碼重寫及的onSaveInstanceState onRestoreInstanceState:
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
// save file url in bundle as it will be null on scren orientation
// changes
outState.putParcelable("file_uri", fileUri);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
// get the file url
fileUri = savedInstanceState.getParcelable("file_uri");
}
但onRestoreInstanceState永遠不會被調用。 感謝
也使用onActivityResult()方法。 –
我已經用它來獲取相機結果 –