android:开始活动的不寻常方式

时间:2011-02-23 20:42:22

标签: android android-activity

在一项活动中,我需要启动另一项活动,但有一个条件:如果它在此之前启动,则必须完成并重新启动。此活动显示有关系统状态(Theme.Dialog样式)的一些信息,它也可以启动某些服务等。据我所知,当我执行startActivity(intent)时,将调用onResume()(如果之前已启动活动)。有人知道怎么做吗?

4 个答案:

答案 0 :(得分:2)

这正是它应该如何运作的。如果需要在屏幕上调整值,请将该代码放在onResume()中。从名称可能不明显的是,在首次创建Activity时调用onResume()。它始终是在Activity变为活动状态之前调用的最后一个方法。

答案 1 :(得分:2)

在startActivity()调用中使用NEW_TASK_LAUNCH标志。阅读文档http://developer.android.com/guide/appendix/faq/framework.html#4

答案 2 :(得分:2)

在清单文件的活动属性中,您具有属性启动模式,该模式允许您指定必须如何启动活动(http://developer.android.com/guide/topics/manifest/activity-element的.html#LMODE)。

查看说明,了解哪种模式最适合您的需求。然后,当活动显示在前面时,您可以通过重写Activity.onResume()方法重新启动服务。

答案 3 :(得分:1)

  

在一项活动中,我需要启动另一项活动,但有一个条件:如果它在此之前启动,则必须完成并重新启动

没有任何事情可以做到这一点。最接近的是具有FLAG_ACTIVITY_CLEAR_TASK|FLAG_ACTIVITY_NEW_TASK的组合,但这会产生其他副作用,例如消除任何其他活动。

  

据我所知,当我执行startActivity(intent)时,将调用onResume()(如果之前已启动活动)。

默认不是。默认情况下,会创建活动的第二个实例。