Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.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 与通知和IntentService相关的异步任务问题_Android - Fatal编程技术网

Android 与通知和IntentService相关的异步任务问题

Android 与通知和IntentService相关的异步任务问题,android,Android,我有一个很奇怪的问题。我正在服务中设置通知以启动活动。当活动启动时,将启动一个AsyncTask。以下是我设置通知的方式: CharSequence tickerText = getString(R.string.notificationTextUpdates); CharSequence contentText = getString(R.string.app_name); Notification notification = new Notification(icon,

我有一个很奇怪的问题。我正在服务中设置通知以启动活动。当活动启动时,将启动一个
AsyncTask
。以下是我设置通知的方式:

CharSequence tickerText = getString(R.string.notificationTextUpdates);
CharSequence contentText = getString(R.string.app_name);

Notification notification = new Notification(icon,
                        tickerText, System.currentTimeMillis());
Intent notificationIntent = new Intent(
                        getApplicationContext(), MyActivity.class);

PendingIntent contentIntent = PendingIntent
                        .getActivity(getBaseContext(), 0,
                                notificationIntent, 0);

notification.setLatestEventInfo(getApplicationContext(),
                        tickerText, contentText, contentIntent);
notifManager.notify(0, notification);
如果应用程序正在运行,一切正常,但如果它以前没有运行,则不会触发AsyncTask的
onPostExecute
方法。相反,我得到了以下异常:

09-30 16:07:52.500:警告/消息队列(27729): java.lang.RuntimeException:处理程序{4057ec78}正在向 死线程上的处理程序09-30 16:07:52.500:WARN/MessageQueue(27729): 在android.os.MessageQueue.enqueueMessage(MessageQueue.java:196)09-30 16:07:52.500:警告/消息队列(27729):在 android.os.Handler.sendMessageAtTime(Handler.java:457)09-30 16:07:52.500:警告/消息队列(27729):在 android.os.Handler.sendMessageDelayed(Handler.java:430)09-30 16:07:52.500:警告/消息队列(27729):在 android.os.Handler.sendMessage(Handler.java:367)09-30 16:07:52.500: 警告/消息队列(27729):位于 android.os.Message.sendToTarget(Message.java:350)09-30 16:07:52.500: 警告/消息队列(27729):位于 android.os.AsyncTask$3.done(AsyncTask.java:214)09-30 16:07:52.500: 警告/消息队列(27729):位于 java.util.concurrent.FutureTask$Sync.innerSet(FutureTask.java:253) 09-30 16:07:52.500:警告/消息队列(27729):在 java.util.concurrent.FutureTask.set(FutureTask.java:113)09-30 16:07:52.500:警告/消息队列(27729):在 java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:311) 09-30 16:07:52.500:警告/消息队列(27729):在 java.util.concurrent.FutureTask.run(FutureTask.java:138)09-30 16:07:52.500:警告/消息队列(27729):在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088) 09-30 16:07:52.500:警告/消息队列(27729):在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581)

奇怪的是,当我在另一个活动中设置相同的通知时,并没有发生,所以一切都按预期进行


我很困惑。我的活动在单任务模式下运行,我也尝试了单顶端模式,基本上没有改变任何东西。

请参阅,这可能是问题的根本原因。它包括一个解决此问题的方法。

我认为您将线程和处理程序放在一起了?????请您再解释一下,好吗?编写完整的代码………没有更多的代码了。“onCreate”方法启动另一个方法,该方法执行异步任务。我可以跟踪“doInBackground”方法,但鉴于所描述的情况,“onPostExecute”不会触发。摆脱
单个任务
(如果需要,替换为
挂起内容
中你的
意图
上的
标记活动
)。摆脱
getApplicationContext()
(替换为
this
)。摆脱
getBaseContext()
(替换为
this
)。看看这些是否有用。