私はAndroidJavaプログラミングに不慣れです。
簡単なチャットアプリを作成しました。物事は順調に進んでいますが、私は小さな問題にぶつかりました。マニフェストのアプリケーションタグにlaunchMode="singleTop"を設定し、戻るボタンをオーバーライドしたので、ユーザーが戻るボタンまたはホームボタンを押してもチャットアプリは(バックグラウンドで)実行されたままになります。また、新しいチャットが表示されたときにステータスバーにポップアップする通知をいくつか作成しました(intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP)が設定されています)。ユーザーが通知をクリックすると、すでに実行中のチャットアプリが表示されます。フロントへ。それはすべて正常に機能しています。この問題は、ステータスバーの通知からアプリを起動し、[戻る]または[ホーム]をクリックして、アプリケーションメニューまたはランチャーのショートカットからアプリを開くことを選択した後に発生します。
それは明らかですか?
アプリが実行されておらず、アプリメニューから実行することを選択した場合、アプリは実行されます(チャットを受信していないため、チャットは表示されません)。チャットを受信してアプリの画面に表示し、戻るボタンを押し、アプリメニューから戻ってアプリを開くと、チャットが実行され、以前のチャットメッセージが表示されます。良い。今、私は押し返します(アプリはバックグラウンドにありますが、まだ実行中です)、チャットを受信し、ステータスバーの通知をポップアップし、クリックすると、アプリが開き、以前のチャットメッセージが表示されます。良い。今、私は戻ってクリックします(アプリがバックグラウンドで実行されているように)。次に、アプリメニューからアプリを開きます(1回目と2回目と同じように)が、今回は以前のチャットメッセージが表示されず、チャットを受信すると2つの通知音が鳴るので、わかります。アプリの新しいインスタンスを開始しました。
何が問題なのか分かりますか?
ありがとう。