当我从中启动一个Activity时,为什么我的Android服务会被杀死?

时间:2013-03-24 19:47:55

标签: android android-activity android-service

我有一个必须启动外部活动的服务。 我希望即使在启动了Activity之后,该服务仍将继续运行。问题是调用了onDestroy()并且服务被终止。 这是我的代码:

我如何从服务内部启动外部活动:

      Intent intent = new Intent(Intent.ACTION_DIAL);        
      intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
      context.startActivity(intent);

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

  

当我从服务内部启动活动时,该服务正在被杀死是否正常?

服务未被杀死"。

您的服务将一直运行:

  • 您致电stopService()引用该服务,或
  • 服务调用stopSelf()
  • 如果您使用的是绑定模式,则所有绑定(通过bindService())都是未绑定的(通过unbindService())或
  • Android终止您的流程,例如由于内存不足或用户请求

因此,您需要确定哪些条件为真。没有必要与开始活动有任何关系。

请注意,从服务启动活动通常不是一个好主意,特别是如果这可能在任意时间发生而不是基于用户输入。用户不喜欢突然出现的活动。