3

私は、SDカードのオーディオファイルを再生するためのメディアプレーヤーアプリを開発しています。アプリケーションを使用することで、オーディオファイルを表示でき、選択した曲を再生できます。 曲の再生中に戻るボタンを押すと、通知が作成されます。 MainActivity(PendingIntentを使用して)を起動するとき、アプリケーションは以前のMainActivityインスタンスを起動するのではなく、MainActivityの新しいインスタンスを起動しています。通知で複数のアクティビティが起動される

マニフェストでMainActivity launchModeを "Singletop"にしました.FYI、アプリケーションは1つのアクティビティしか持っていません。

通知フラグも追加しようとしましたが、アプリケーションが別のインスタンスを起動しています。

何が間違っていた、私は得ることができません。私を助けてください。

答えて

2
Intent intent=new Intent(this,Element.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_SINGLE_TOP); 
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, intent, 0); 

これは私:)

0

古い質問のために働いたが、kishu27ソリューションを統合するために(ありがとう!)、動作しますが、先の意図にアプリ内でユーザーナビゲーションをリセットする唯一の欠点を持っていますスタックをクリアする(これまたはあなたが望むものであってもなくてもよい)、別の解決策は、テントの宛先にすることの唯一のタスクに特化した活動を作成することです:

public class NotificationLanding extends Activity { 

    @Override 
    public void onCreate(Bundle mainBundle) { 
     super.onCreate(mainBundle); 

     View view = new View(this); 
     view.setBackgroundColor(Color.TRANSPARENT); 
     setContentView(view); 

     finish(); 
    } 
} 

は(も宣言することを忘れないでくださいマニフェストでの活動!)

<activity android:name=".NotificationLanding"/> 

これを使用して、ユーザーのナビゲーションに影響を与えずにアプリケーションを「フォーカスする」だけです。おそらく、同じ効果を得るための他の手段があり、コメントは大歓迎です。

厳密には必要ではありませんが、Intentのkishu27インテントフラグも統合することをお勧めします。

希望すると助かります

関連する問題