0

我编写了一个注册 Smsreciever 的服务,并且总是在后台工作。另外,我想阻止我的主要活动在不使用该程序的情况下在后台工作。通常它可以工作,但有时我的活动在收到短信后在后台启动和运行,这会导致电池消耗,我该如何防止

public void onCreate()
{
    ...

    startService(new Intent(this,ServiceCommunicator.class));

    ...
}               

 public void onBackPressed() {

    super.onBackPressed();
    android.os.Process.killProcess(android.os.Process.myPid()) ;

      }
4

1 回答 1

1

关于你在做什么的一些注释:

  1. 不建议终止您的进程。让服务继续。当您调用“startService”时,即使在活动关闭后它也应该继续。

  2. 根据定义,后台服务可以在系统认为它需要内存时终止。如果您不想错过短信事件,请让您的服务在前台运行。

  3. 您的服务使用的 CPU 和电池越多,操作系统决定杀死它的机会就越大。服务应该尽可能精简,如果他们长时间做大量工作,他们应该在前台。

  4. 如果您的活动使用大量 CPU ,您的服务也可能在关闭应用程序时关闭,因为它们都属于同一个进程。您可以通过清单更改服务的流程。

于 2012-10-20T20:49:20.117 回答