2011-12-14 14 views
0

私のアンドロイドアプリケーションで奇妙な動作が発生しています。アプリケーションを開くとDashboardActivityが表示され、ホームボタンまたは戻るボタンを押してアプリケーションが終了します。これで結構です。それから私はプッシュメッセージを受け取り、このプッシュメッセージで私は通知を作成します。通知は正常に動作し、私は通知をクリックして、それが私の活動を開き、以下のコードを使用して:開始後に活動が終了しない通知がありません

Intent notificationIntent = new Intent(context, BookingOfferActivity.class); 
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); 
Bundle b = new Bundle(); 
b.putSerializable("booking", booking); 
notificationIntent.putExtras(b); 

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

をそれから私は、このBookingOfferActivity活動にいくつかのタスクを実行してください。この活動がされるにする方法仕上げ()を呼び出し何があっても終了しました。その後、私は再びアプリケーションを開きますが、DashboardActivityを見るのではなく、まだBookingOfferActivityが表示されています。私はここで提案された解決策を試してみました

Prevent new activity instance after clicking on notification

しかし、それだけでdoesntの仕事。

DashboardActivityでアプリケーションを常に開くように強制する方法はありますか?

おかげ

T

答えて

0

あなたは(仕上げを呼び出している考えると奇妙な動作です)

は、あなたの意図からSINGLE_TOPを削除してくださいBookingOfferActivity

+0

こんにちは@triggs、私はちょうどあなたが言ったこと、それは仕事をしなかった。私のBookingOfferActivityでfinish()を呼び出して、もう一度アプリケーションを開くと、アクティビティはまだそこにあります。私を助けてくれてありがとう! – Thiago

+0

非常に奇妙なことに、あなたのBookingOfferActivityのコードで質問を編集する必要があります。また、notificationIntent – triggs

0

私は正確に分からないが、uがonStop()メソッド内のすべての活動を終了しようとすることができます。 onResume()メソッドの は、DashboardActivityを開始します。

0

のマニフェストに

android:noHistory="true" 
android:launchMode="singleInstance" 

を設定してみてください。 CLEAR_TOPはあなたが望むものでなければなりません。

Androidデベロッパーのドキュメントから

FLAG_ACTIVITY_SINGLE_TOP - >設定した場合、それはすでに履歴スタックの最上位に実行されている 場合、アクティビティが起動されることはありません。

+0

からCLEAR_TOPを削除してください。私はまだこれがなぜ起こっているのか把握しようとしています。再度、感謝します – Thiago

関連する問題