通知启动多个活动实例

时间:2012-02-09 16:25:34

标签: android instance android-notifications android-pendingintent

我正在开发一个媒体播放器应用程序,用于播放SD卡中的音频文件。通过使用该应用程序,我可以查看音频文件,我可以播放所选的歌曲。   当在播放歌曲时按下后退按钮时,会创建通知。问题出在这里,当我启动MainActivity(通过使用PendingIntent)时,应用程序正在启动MainActivity的新实例,而不是启动以前的MainActivity实例。

我在manifest.FYI中将MainActivity launchMode设为“Singletop”,该应用程序只有一个活动。

我也尝试添加通知标志,但应用程序仍在启动另一个实例。

出了什么问题,我无法得到。请帮帮我。

2 个答案:

答案 0 :(得分: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);

这对我有用:)

答案 1 :(得分:0)

老问题,但要集成kishu27解决方案(谢谢!),它有效,但唯一的缺点是将应用程序内的用户导航重置为清除堆栈的目标意图(可能是您想要的也可能不是) ,另一个解决方案是创建一个专门的活动,唯一的任务是Intent的目的地:

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"/>

并将其用于&#34;焦点&#34;您的应用程序,而不会影响您的用户导航。也许还有其他方法可以达到同样的效果,欢迎提出意见。

我建议将kishu27 Intent标志整合到你的意图中(我做过),虽然它并非绝对必要。

希望它会有所帮助