0

私はAndroidJavaプログラミングに不慣れです。

簡単なチャットアプリを作成しました。物事は順調に進んでいますが、私は小さな問題にぶつかりました。マニフェストのアプリケーションタグにlaunchMode="singleTop"を設定し、戻るボタンをオーバーライドしたので、ユーザーが戻るボタンまたはホームボタンを押してもチャットアプリは(バックグラウンドで)実行されたままになります。また、新しいチャットが表示されたときにステータスバーにポップアップする通知をいくつか作成しました(intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP)が設定されています)。ユーザーが通知をクリックすると、すでに実行中のチャットアプリが表示されます。フロントへ。それはすべて正常に機能しています。この問題は、ステータスバーの通知からアプリを起動し、[戻る]または[ホーム]をクリックして、アプリケーションメニューまたはランチャーのショートカットからアプリを開くことを選択した後に発生します。

それは明らかですか?

アプリが実行されておらず、アプリメニューから実行することを選択した場合、アプリは実行されます(チャットを受信して​​いないため、チャットは表示されません)。チャットを受信して​​アプリの画面に表示し、戻るボタンを押し、アプリメニューから戻ってアプリを開くと、チャットが実行され、以前のチャットメッセージが表示されます。良い。今、私は押し返します(アプリはバックグラウンドにありますが、まだ実行中です)、チャットを受信し、ステータスバーの通知をポップアップし、クリックすると、アプリが開き、以前のチャットメッセージが表示されます。良い。今、私は戻ってクリックします(アプリがバックグラウンドで実行されているように)。次に、アプリメニューからアプリを開きます(1回目と2回目と同じように)が、今回は以前のチャットメッセージが表示されず、チャットを受信すると2つの通知音が鳴るので、わかります。アプリの新しいインスタンスを開始しました。

何が問題なのか分かりますか?

ありがとう。

4

1 に答える 1

3

マニフェストでアクティビティlaunchModeをsingleInstanceに設定します。

于 2012-04-13T05:29:19.973 に答える