首页 文章

通知启动多个活动实例

提问于
浏览
3

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

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

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

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

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

    这对我有用:)

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

    并使用它来“聚焦”您的应用程序,而不会影响您的用户导航 . 也许还有其他方法可以获得相同的效果,欢迎提出意见 .

    我建议在你的Intent(我做过)中集成kishu27 Intent标志,虽然它并不是绝对必要的 .

    希望它会有所帮助

相关问题