小编Ser*_*lal的帖子

如何在Android应用中使用带有FLAG_ACTIVITY_REORDER_TO_FRONT的putExtra()?

我有一个应用程序,调用"App1".在我的App1中,我调用了Camera应用程序.

intent = new Intent(Intent.ACTION_MAIN);
intent.setComponent(new ComponentName("com.android.camera","com.android.camera.Camera"));
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

之后,我使用FileObserver来监听用户是否拍照.当这发生时,我打电话

Context ctx = App1.this.getApplicationContext();
Intent j = new Intent(ctx, App1.class);
j.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
j.putExtra("type", 1);
startActivity(j);
Run Code Online (Sandbox Code Playgroud)

它工作,我的意思是它让我的应用程序前面如何离开它,但我需要传递一个称为"类型"的整数.我想,我的应用程序将调用"onResume()"但是如何获得额外的整数.这种类型的传递在我的应用程序中没有做任何事情.

在onCreate方法中有Bundle savedInstanceState,但在onResume方法中没有这样的东西.所以,我需要你的帮助才能解决这个问题.提前致谢.

android android-intent

23
推荐指数
1
解决办法
6143
查看次数

每当调用startactivityforresult时,Android都会杀死我的应用程序

好吧,在我的应用程序中,我正在使用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不会在前台杀死应用程序,我还可以使用此功能吗?我认为我的问题与问题几乎相似.


除了Yahel提供的解决方案之外,使用以下方法也可以.

@Override
public void onSaveInstanceState(Bundle savedInstanceState){
   super.onSaveInstanceState(savedInstanceState);
}

@Override
public void onRestoreInstanceState(Bundle savedInstanceState){
   super.onRestoreInstanceState(savedInstanceState);
}
Run Code Online (Sandbox Code Playgroud)

android android-intent android-lifecycle android-activity

2
推荐指数
1
解决办法
3648
查看次数