每当应用程序被激活/或开始运行时,我都必须运行一些后台任务。假设您正在运行应用程序然后突然设备启动或者您没有正确停止应用程序的任何方式离开应用程序,那么当您再次启动应用程序时,显然它将在退出应用程序之前从之前的状态开始运行。当它再次启动或激活时,我希望我的后台任务完成。是否有任何函数在每次应用程序启动时调用,我可以使用它来初始化这些后台任务?如果没有那么我怎样才能达到目的呢?需要帮助,提前谢谢...... !!!
答案 0 :(得分:1)
每当应用程序从后台返回时,至少会运行onResume()
函数:
@Override
public void onResume(){
//You have to call super.onResume(), otherwise an exception is thrown
super.onResume();
// and then do whatever you want here.
}
答案 1 :(得分:0)
是的,每当应用程序启动时,都会调用主活动类的OnCreate
方法。
来自documentation -
活动开始时调用。这是大多数初始化应该去的地方:调用setContentView(int)来膨胀活动的UI,使用findViewById(int)以编程方式与UI中的小部件交互,调用managedQuery(android.net.Uri,String [],String,String [ ],String)检索正在显示的数据的游标等
This问题可能会有所帮助。从接受的答案 -
无论您启动应用程序还是恢复应用程序,都会调用OnCreate。
答案 2 :(得分:0)
嗯 - Android SDK中没有这样的工具可供您确定您的应用程序是否正在运行 - 这主要是因为Android处理应用程序的方式。
例如 - 你说应用程序没有运行是什么意思?这意味着UI不可见,或者与应用程序相关的进程没有运行?顺便说一句,我希望你知道:
应用程序的生命周期!= 应用程序进程的生命周期。
至于运行后台任务,您可以使用AsyncTask
或Service
类。
如果您只关注应用程序的可见生命周期,那么您将不得不依赖于使用onPause
和onResume
方法来检查在标志上你可以打开/关闭以捕捉应用程序的状态。