2011-06-14 81 views
1

我有活动+服务类。关于android活动生命周期的愚蠢问题

当程序运行时,活动将被显示并且服务将在onCreate活动方法中开始。

当我点击了虚拟机的HOME键,主屏幕会出现,但活动可能在这一点上已经走了

  1. ,我不知道该程序在哪种情况-paused/stopped- ???
  2. 发生了什么事? (它还在运行吗?)
  3. 如何使用该服务将活动带到前台?

谢谢...

+0

如果妳启动应用程序再次在同一个屏幕会..活动会处于暂停状态...... – ngesh 2011-06-14 08:53:02

+0

要跟踪的LiveCycle,重载的方法调用onStart(),onRestart (),onResume(),onPause(),onStop(),onDestroy()并在主体中创建日志条目。 – Milde 2011-06-14 09:03:20

+0

@devA不一定,Android框架可能已经销毁了'Activity'来获取资源。 – 2011-06-14 09:04:09

回答

3

那么在您的情况下,如果您按主页按钮它已暂停。并通过按下主页按钮再次启动它就可以恢复它。

的服务:这取决于你如何启动服务..

如果你开始与startService(意图)的服务的话,你的服务正在运行,直到:

a)您明确停止通过调用stopService。

B)的Android杀死它

c)您从服务

内拨打selfStop如果你没有调用startService(开始bindService()服务),那么该服务将:

a)运行直到活动被破坏(没有暂停,所以这意味着如果你按主页按钮,它会继续运行),这也意味着你需要调用unbind()。

B)的Android杀死它

C),直到你从服务

内来电selfStop带来的活动前景你需要调用的意图,并设置标志,我相信这是从历史中推出或类似的东西....你将不得不检查文档。

intent.addFlag(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); < - 我认为 或这一个 - > FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY

1

查看活动流程如下,希望它有助于

The activity flow

0

的状态您Activity(和Service)可能取决于别人发生了什么变化。如果Android系统需要资源,它可能会破坏您的Activity(也可能是您的Service)以获取它们。您应该读了起来:

Activity图(也马克巴克的答案)特别注意框包含文本“其他应用程序需要记忆'。