2011-07-19 114 views
2

每当应用程序激活/或开始运行时,我都必须运行一些后台任务。假设你运行的应用程序,然后突然设备脱落或任何如何ü离开应用程序没有正确停止,然后当你将再次启动应用程序,显然它将开始运行之前的状态,然后才离开应用程序。当它重新启动或激活时,我希望我的后台任务完成。是否有任何函数每次启动应用程序时都会调用,可以用来初始化这些后台任务?如果没有,那我该如何完成我的目的?需要帮助,请提前致谢.... !!!如何确定应用程序是否正在运行?

回答

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. 
} 
0

是的,主要活动类别的OnCreate方法在应用程序启动时被调用。

documentation -

当活动开始时调用。这是大多数初始化应该去的地方:调用setContentView(int)来扩充活动的UI,使用findViewById(int)以编程方式与UI中的小部件交互,调用managedQuery(android.net.Uri,String [],String,String [ ],字符串)检索正在显示的数据的光标等。

This问题可能会有所帮助。从接受的答案 -

无论您启动应用程序还是恢复应用程序,都会调用OnCreate。
+0

嗯,你说得对,主要活动被称为每当应用程序启动,但我的意思是当应用程序被激活....假设你运行的应用程序,然后突然设备下车或任何如何你离开了应用程序没有正确地停止它,然后当你再次启动应用程序时,显然它将在退出应用程序之前从以前的状态开始运行。当它再次启动或激活时,我想要完成我的后台任务。希望这次你明白我的意思...... – Junaid

+0

@junaid:那么你应该编辑你的问题,并包括这些信息。 –

+0

@ Sayem Ahmed:好的,我编辑了我的问题....但是,它可能是一个可能的解决方案?任何想法 ? – Junaid

0

好 - 有在Android SDK中提供没有这样的设施供您决定是否您的应用程序正在运行 - 这主要是因为Android处理应用程序的方式。

例如 - 你说什么意思,说应用程序是没有运行?这是否意味着UI不可见,或者与应用程序相关的进程没有运行?顺便说一句,我希望你知道:

应用程序的生命周期!=应用程序进程的生命周期。

至于运行后台任务,您可以使用AsyncTaskService类。

如果你担心只有应用程序的可见一生中,你必须依靠利用的和onResume方法,以检查标志,你可以打开/关闭捕捉应用程序的状态。

+0

这并非完全如此。您可以通过在'onPause()'和'onResume()'中设置标志来跟踪应用程序的前台时间。不过,我同意突出“服务”类对提问者很有用。 –

+0

哦,我只是简单地编辑了我的回复,当你评论:'onResume'和'onPause'的时候:] – anirvan

相关问题