當我從另一個活動返回到主活動並在返回Intent中放置一個額外的位圖時,該應用程序完全完成,並且主活動中的onActivityResult根本不會被調用。將位圖作爲額外的結果Intent完全關閉應用程序
SecondaryActivity.java
private void returnFromModule(int result) {
Intent intent = new Intent();
intent.putExtra(CameraModule.Keys.KEY_FILE_PATH, mFilepath);
//if the next line is omitted the app goes back normally to the main activity
intent.putExtra("data", mThumbnail);
setResult(result, intent);
finish();
}
注意,一切正常,當我不把多餘的位圖。位圖也不是很大。
public static Bitmap getThumbnail(String filepath) {
ExifInterface exifInterface = getExifInterface(filepath);
byte[] thumbnailData = exifInterface.getThumbnail();
Bitmap thumbnail = BitmapFactory.decodeByteArray(thumbnailData, 0, thumbnailData.length);
return thumbnail;
}
這是放在意圖中的縮略圖位圖。
MainActivity.java
這裏是我的MainActivity的onActivityResult,但我不認爲它很重要,因爲很多時候一個位圖被放在迴歸意向那就不叫的。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == Activity.RESULT_OK) {
((TextView)findViewById(R.id.path)).setText(data.getExtras().getString(CameraModule.Keys.KEY_FILE_PATH));
}
}
}
這裏是我開始SecondaryActivity
startActivityForResult(new Intent(this, SecondaryActivity.class),1);
您是否從MainActivity啓動了SecondardActivity?如果你這樣做,你是否通過使用startActivityForResult()將意圖返回給MainActivity來啓動SecondardActivity?如果你不這樣做,你必須在創建類似下面的答案時設置類信息。 – kimkevin
是的,我開始了結果的活動。只有當我添加一個位圖額外,它才能完成應用程序,否則它會正常返回。 – ninjaintrouble
返回一個位圖是一個非常糟糕的主意。而且它不起作用,因爲你可以看到。更好地返回文件路徑並讓接收器提取位圖。 – greenapps