好的,在我的应用程序中,我正在使用Android的默认相机和图库,并使用startActivityForResult方法;
Intent i = new Intent("android.intent.action.PICK",
MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
i.setType("image/*");
startActivityForResult(i, this.SELECT_PICTURE);
我也能捕获onActivityResult。然而,如果内存不足并且我启动此活动,则系统会杀死我的父活动,即使活动返回值,我也会失去所有本地变量(并且onCreate()会再次调用)。只有应该再次调用onResume()。
我尝试了几次,我很确定它与内存问题有关。如果有足够的内存,进程将成功执行。如何防止这种行为?
由于Android不会杀死前台应用程序,我仍然可以使用此功能吗?我认为我的问题与this one几乎相似。
解决方案
除了Yahel提供的解决方案外,以下方法也可以使用。
@Override
public void onSaveInstanceState(Bundle savedInstanceState){
super.onSaveInstanceState(savedInstanceState);
}
@Override
public void onRestoreInstanceState(Bundle savedInstanceState){
super.onRestoreInstanceState(savedInstanceState);
}