2012-02-09 58 views
4

基本上,我想從後臺服務彈出一個對話框到前臺(我知道使用通知會更加用戶友好,但我的應用程序確實需要用戶立即響應)。我有我的服務工作。然後我使用android:theme="@android:style/Theme.Translucent.NoTitleBar"定義一個包含對話框的活動。從服務開始一個活動到前景

在服務代碼,我開始喜歡這個對話框活動:

Intent intent = new Intent(getApplicationContext(), PopUpDialogActivity.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(intent); 

對話框可以彈出,如果我在我的應用程序來的。但是如果我不在我的應用程序中,對話框不會在前臺彈出(我必須進入我的應用程序才能看到它)。我怎樣才能直接啓動用戶專注?

+0

從後臺服務啓動半透明活動似乎沒有任何問題,即使該應用程序不是當前活動的任務。你可以在開始服務的地方提供代碼嗎?當你離開應用程序時,它有可能會關閉嗎? – antonyt 2012-02-09 22:01:58

+0

在主要活動中,我有一個切換按鈕,因此啓動服務的代碼是:if(togglebutton.isChecked()){startService(new Intent(getApplicationContext(),MyService.class));}。在服務中,啓動對話框活動的代碼片段在onStartCommand中定義。 – 2012-02-09 22:36:53

回答

0

如果您的服務綁定到某個活動,那麼當您退出您的活動或應用程序時它將會死亡。使用onPause()和onResume()來解除綁定並綁定到服務,以便它在退出/返回時不會被終止。