14

我正在从我这样称呼的活动向相机发送意图:

 Intent testphoto = new Intent(Dashboard.this,CameraHandler.class);
 startActivity(testphoto);

CameraHandler课堂上,我称相机为:

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
startActivityForResult(intent, 0);

但是在类中onActivityResult调用之前CameraHandler,活动被破坏了。有没有办法防止这种情况发生?

找到答案:我noHistory="true"在我的中AndroidManifest,这使得操作系统在结果之前破坏了活动。

4

3 回答 3

42

确保您没有打开“不保留活动”开发人员设置,因为它会破坏您要离开的活动。

于 2013-11-17T22:55:42.340 回答
4

您不必担心调用Activity时调用被破坏startActivityForResult(),因为它根本不会改变预期的行为(即无论父活动是否被破坏,子活动都会记住将结果传递回父活动) . 看到这个帖子

另请注意,虽然有时需要防止Activitys 被销毁(即配置更改等),但通常您希望不理会Activity生命周期,让系统Activity为您管理后台 s。一旦你启动一个新的Activity,你不应该明确地阻止以前Activity的 s 被破坏。

于 2012-05-02T17:46:52.427 回答
-2

您必须在清单中提及

 android:persistent="true"

下面的SO帖子回答了同样的问题

如何通过 BACK 键使活动停止而不是被销毁?

如何防止 onPause() 之后调用 onDestroy()?

尽可能长时间地防止活动被破坏

于 2016-03-04T07:16:45.367 回答