gpt4 book ai didi

android - 从应用程序启动启动服务,而不是 Activity

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:20:23 26 4
gpt4 key购买 nike

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

我找到了这个 question但是最上面的答案似乎很笨拙,有人有更好的主意吗?

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

最佳答案

一般来说,Activity 不必显示任何 UI - 它通常会显示,但不是强制性的。所以你可以简单地将应用程序的起点设置为你的“不可见” Activity 。隐形意味着主题为

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

或者只是您的代码不会执行任何 setContentView() 并且一旦它的工作在您的 onCreate() 中完成,您将开始另一个 Activity 并使用 finish() - 并且不会从该 Activity 中弹出任何 UI - 这样您就可以轻松地从 Activity 子类中的工作中获益(对于某些任务来说这可能更简单)并且仍然不需要任何 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 - 从应用程序启动启动服务,而不是 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12817311/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com