Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 异步任务中的更改通知_Android - Fatal编程技术网

Android 异步任务中的更改通知

Android 异步任务中的更改通知,android,Android,我有一个AsyncTask,它创建一个通知,并在进程中更新它。 但是当用户在AsyncTask工作时存在我的应用程序时,我失去了上下文,无法再更新。 因此,在异步任务运行时,将“后退”按钮的功能更改为与“主页”按钮相同的功能是一个好主意吗?或者,还有什么方法可以访问上下文呢?出于这样的原因,我倾向于避免异步任务。我通常用它们来做一些事情,如果活动或任务死亡,什么都不会丢失。对于我希望确保在活动死亡或后台工作出现问题时完成的事情,您可能应该使用服务。该平台有一个内置的基本平台,称为。这应该适合您的

我有一个
AsyncTask
,它创建一个
通知
,并在进程中更新它。 但是当用户在
AsyncTask
工作时存在我的应用程序时,我失去了
上下文,无法再更新。

因此,在异步任务运行时,将“后退”按钮的功能更改为与“主页”按钮相同的功能是一个好主意吗?或者,还有什么方法可以访问
上下文呢?

出于这样的原因,我倾向于避免异步任务。我通常用它们来做一些事情,如果活动或任务死亡,什么都不会丢失。对于我希望确保在活动死亡或后台工作出现问题时完成的事情,您可能应该使用服务。该平台有一个内置的基本平台,称为。这应该适合您的情况,因为服务将有自己的上下文,并且可以更新和跟踪通知本身


另一种选择是让main
应用程序
在静态变量中保留对自身的引用,我不建议这样做,但这是可能的。这还将提供任务可以使用的
上下文

那么,将异步任务放在intendeservice中并从那里运行是一个好主意吗?如果它确实是一个长期运行的任务,您可以这样做,并在服务中跟踪它。但是,由于您只是更新通知,而IntentService已经在运行与UI线程不同的东西,因此不需要这样做。