Ser*_*lal 2 android android-intent android-lifecycle android-activity
好吧,在我的应用程序中,我正在使用Android的默认摄像头和图库,其中startActivityforResult为;
Intent i = new Intent("android.intent.action.PICK",
MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
i.setType("image/*");
startActivityForResult(i, this.SELECT_PICTURE);
Run Code Online (Sandbox Code Playgroud)
我也能够捕获onActivityResult.但是,如果内存很少并且我开始这个活动,我经历过该系统正在杀死我的父活动,即使活动返回一个值,我也丢失了所有的局部变量(并再次调用onCreate()).只应再次调用onResume().
我试了几次,我很确定它与内存问题有关.如果有足够的内存进程成功执行.我该如何防止这种行为?
由于Android不会在前台杀死应用程序,我还可以使用此功能吗?我认为我的问题与此问题几乎相似.
@Override
public void onSaveInstanceState(Bundle savedInstanceState){
super.onSaveInstanceState(savedInstanceState);
}
@Override
public void onRestoreInstanceState(Bundle savedInstanceState){
super.onRestoreInstanceState(savedInstanceState);
}
Run Code Online (Sandbox Code Playgroud)
您需要仔细阅读必读之前的代码文章:http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle
如果内存不足,你可以并且将会被Android杀死.但它会被通知,并且有一个非常明确的方法来处理这个问题.
这就是Bundle savedInstanceState你所有活动中存在的原因:public void onCreate(Bundle savedInstanceState)
在您的应用程序暂停期间,您应该保存重新创建应用程序所处状态所需的一切,并且在应用程序的创建过程中,您应该检查是否要使用完整的savedInstanceState返回并从那里恢复您的应用程序.
祝好运.
| 归档时间: |
|
| 查看次数: |
3648 次 |
| 最近记录: |