3

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

我在清单中将 MainActivity launchMode 设置为“Singletop”。仅供参考,该应用程序只有一个活动。

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

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

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 解决方案(谢谢!),它可以工作,但唯一的缺点是将应用程序内的用户导航重置为清除堆栈的目标意图(可能是也可能不是你想要的),另一种解决方案是创建一个专门的活动,其唯一任务是成为 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"/>

并使用它来“聚焦”您的应用程序,而不会影响用户的导航。或许还有其他方法可以达到同样的效果,欢迎评论。

我建议也将 kishu27 Intent 标志集成到您的 Intent 中(我做了),尽管这不是绝对必要的。

希望它会有所帮助

于 2014-05-27T13:46:08.743 回答