防止活动被破坏

Die*_*ego 13 android android-camera-intent android-activity android-ondestroy

我从一个我称之为活动的活动中向相机发送了一个意图:

 Intent testphoto = new Intent(Dashboard.this,CameraHandler.class);
 startActivity(testphoto);
Run Code Online (Sandbox Code Playgroud)

在CameraHandler类中,我调用相机:

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
startActivityForResult(intent, 0);
Run Code Online (Sandbox Code Playgroud)

但是在CameraHandlercamerahandler类中调用之前,活动被破坏了.反正有没有阻止这个?

发现答案:我的androidmanifest nohistory = true,这使得操作系统在结果之前破坏了活动.

小智 38

确保您没有"不要保持活动"开发人员设置,因为它会破坏您要离开的活动.

  • +100.为什么这甚至是一个选择?它有很多副作用! (4认同)

Ale*_*ood 4

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

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

  • 唯一的问题是,突然 onActivityResult 永远不会被调用,当我有一个只有一个活动的应用程序时,该活动永远不会被销毁,但是 onActivityResult 被调用,现在当在另一个应用程序中时,突然活动被销毁,结果似乎永远不会回来。知道那是怎么回事吗? (2认同)