3

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

マニフェストでMainActivitylaunchModeを「Singletop」にしました。FYI、アプリケーションには1つのアクティビティしかありません。

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

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

4

2 に答える 2

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);

これは私のために働いた:)

于 2012-03-09T12:18:56.627 に答える
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"/>

ユーザーのナビゲーションに影響を与えることなく、アプリケーションに「集中」するために使用します。おそらく、同じ効果を得るための他の手段があるかもしれません。コメントは大歓迎です。

厳密には必要ではありませんが、kishu27 Intent フラグも Intent に統合することをお勧めします (私はそうしました)。

それが役立つことを願っています

于 2014-05-27T13:46:08.743 に答える