我必须在应用启动时立即运行我的应用程序。我知道onCreate
方法,但每次创建活动时都会调用它。 整个应用程序本身是否有onCreate
方法?
假设我想要运行一个进程,我们可以在应用程序启动时将其命名为A.我 通常会将其放在我的应用的第一个活动中onCreate
,但每当我返回到我的第一个时,它会被多次调用活性。
1. App starts->
2. First Activity starts->
3. Process A starts
4. First Activity starts->
5. Process A starts
在这里,您可以看到,每次第一个活动开始时,流程A都会启动。相反,我有什么方法可以做这样的事情吗?
1. App starts
2. Process A starts
3. First activity starts
4. Second activity starts
5. etc...Process A never starts again, until the app is opened again
现在,有没有办法可以让流程A重新开始,即使如果应用程序消失了?例如:
1. App starts
2. Process A starts
3. First activity starts
4. Second activity starts
5. User presses home menu
6. App starts again, but since user never closed app in multitasking, `process A never started`
感谢您在我如何实现这一目标方面的专业帮助,
Ruchir
答案 0 :(得分:1)
您必须创建一个自定义的Application类,方法是创建一个扩展Application的类,然后覆盖onCreate(就像您对任何活动一样)并将该代码放入。
public class MyApplication extends Application {
public void onCreate() {
//your process A code
}
}
您还必须告诉清单您正在使用自定义应用程序类。您可以在AndroidManifest.xml文件中执行此操作,您必须将name元素设置为新Application类的位置:
<application
android:name="com.packageName.example.MyApplication"
android:label="@string/app_name"
android:logo="@drawable/ic_launcher_no_text" >
答案 1 :(得分:0)
Archit解决方案似乎已经足够好了。 你也可以尝试运行你的第一个&#39;通过跟随How to create an Android Activity and Service that use separate processes并提及类别android:name =&#34; android.intent.category.DEFAULT&#34;在不同进程中作为LAUNCHER活动的活动它会在任何活动出现之前启动。见
Two launcher activities了解如何在有两个启动器活动时使用类别DEFAULT。
这应该注意按主页键并杀死应用案例。
我不确定哪种方式最适合你。可能是Archit的答案还是这个答案。你自己做一些研究。