2011-09-30 33 views
0

我有一個很奇怪的問題。我在我的服務中設置通知以啓動活動。當活動啓動時,啓動AsyncTask。這是我如何設置通知:AsyncTask與通知和IntentService相關的問題

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:WARN /的MessageQueue(27729): 了java.lang.RuntimeException:處理程序{} 4057ec78上死線程發送消息給 處理程序09-30 16:07:52.500:WARN/MessageQueue(27729): at android.os.MessageQueue.enqueueMessage(MessageQueue.java:196)09-30 16:07:52.500:WARN/MessageQueue(27729):at android.os.Handler.sendMessageAtTime(Handler.java:457)09-30 16:07:52.500:WARN/MessageQueue(27729):at android.os.Handler.sendMessageDelayed(Handler.java:430)09- 30 16:07:52.500:WARN/MessageQueue(27729):在 android.os.Handler.sendMessage(Handler.java:367)09-30 16:07:52.500: WARN/MessageQueue(27729):at android.os.Message.sendToTarget(Message.java:350)09- 30 16:07:52.500: WARN/MessageQueue(27729):at android.os.AsyncTask $ 3.done(AsyncTask.java:214)09-30 16:07:52.500: WARN/MessageQueue(27729):at java.util.concurrent.FutureTask $ Sync.innerSet(FutureTask.java:253) 09-30 16:07:52.500:WARN/MessageQueue(27729):at java.util.concurrent.FutureTask.set(FutureTask。 java:113)09-30 16:07:52.500:WARN/MessageQueue(27729):at java.util.concurrent.FutureTask $ Sync.innerRun(FutureTask.java:311) 09-30 16:07:52.500 :WARN/MessageQueue(27729) :at java.util.concurrent.FutureTask.run(FutureTask.java:138)09-30 16:07:52.500:WARN/MessageQueue(27729):at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor。 Java的:1088) 09-30 16:07:52.500:WARN /的MessageQueue(27729):在 java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:581)

奇怪的是,這不會發生,當我在另一個活動內設置相同的通知,所以一切都按預期工作。

我很安靜困惑。我的Activity運行在SingleTask模式下,我也嘗試過SingleTop模式,它基本上沒有改變任何東西。

+0

我想你把線程和處理程序?????????? –

+0

你能解釋一點嗎? –

+0

編寫完整的代碼.................... –

回答