android – 从应用启动启动服务,而不是活动

我想在启动应用程序而不是活动时启动服务;然后说服务将启动一个活动.我需要这样做,因为我的应用程序需要始终运行,当我说我总是说我总是这样.我设法避免操作系统杀死我的应用程序的唯一方法是启动服务作为Sticky并且 Android应该杀死我的活动或我的服务我将立即重新启动它们.

我发现这个question,但最重要的答案似乎相当笨拙,任何人都有更好的主意?

PS:我知道这看起来不是一个非常友好的应用程序,但这是一个非常具体的研究场景,它不适合普通用户,即手机仅用于此目的;但是,即使内存专用于我的应用程序,Android也时不时地杀死它……我对Android的声称严格的内存管理方案的任何怀疑现在都消失了.

解决方法

一般来说,Activity不必显示任何UI – 它通常会显示但不是强制性的.因此,您只需将应用程序的起点设置为“隐形”活动即可.无形的意思是主题
android:theme="@android:style/Theme.Nodisplay"

或者只是你的代码不会执行任何setContentView(),一旦你的onCreate()完成了工作,你就开始另一个活动并用finish()终止这个活动 – 并且不会从该活动中弹出任何UI – 这样你就可以很容易从在活动子类中完成工作中获益(对于某些任务可能更简单)并且仍然不需要任何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();
   }

}

相关文章

这篇“android轻量级无侵入式管理数据库自动升级组件怎么实现...
今天小编给大家分享一下Android实现自定义圆形进度条的常用方...
这篇文章主要讲解了“Android如何解决字符对齐问题”,文中的...
这篇文章主要介绍“Android岛屿数量算法怎么使用”的相关知识...
本篇内容主要讲解“Android如何开发MQTT协议的模型及通信”,...
本文小编为大家详细介绍“Android数据压缩的方法是什么”,内...