从应用开始,而不是活动发射服务(Launch service from app start, not

2019-08-01 08:08发布

我想推出一个Service时,应用程序代替展开活动的; 然后说服务将推出an Activity 。 我需要这样做,因为我的应用程序需要一直运行,当我说我总是总是有效。 而且我已经成功地避免了OS杀死我的应用程序的唯一途径是通过启动服务为粘性且应该杀的Android无论是我的活动或我的服务,我会重新启动他们的时候了。

我发现这个问题,但上方的答案似乎相当笨拙,任何一个有一个更好的主意吗?

PS:我知道这看起来并不像一个非常友好的应用程序,但,这是一个非常具体的研究方案,它不是面向普通用户,即手机只用于此目的; 但即使内存是专门为我的应用程序的Android不断飘飞......我可能有关于Android的本意是严格的内存管理方案的任何问题,现在都没有了杀死它。

Answer 1:

在一般活动并没有表现出任何的UI -它通常不会,但它不是强制性的 。 所以,你可以应用的出发点只是设置为你的“隐形”的活动。 和无形的方式,无论是主题

android:theme="@android:style/Theme.NoDisplay"

或者干脆你的代码不会做任何setContentView()一旦它的任务是在你做onCreate()启动另一个活动,并终止这一次与finish() -并没有UI会从活动弹出-这样你可以容易从活动子做你的工作(这可能是一些简单的任务)中获益,仍然不需要任何用户界面:

public void onCreate(Bundle bundle) {
   super.onCreate(bundle);

   // [... do your job here...]

   // we're done, so let's jump to another acitivity
   // this can be skipped if you do not want to jump anywhere

   Intenet intent = new Intent(....)
   ...

   try {
      startActivity( intent );

      // finish him
      finish();

   } catch ( Exception e ) {
      e.printStackTrace();
   }

}


文章来源: Launch service from app start, not activity