Notification中使用TaskStackBuilder类处理打开的Activity点击back键后的效果

java代码:

        mBuilder = new NotificationCompat.Builder(this).setContent(view)
                .setSmallIcon(R.drawable.icon).setTicker("新资讯")
                .setWhen(System.currentTimeMillis())
                .setOngoing(false)
                .setAutoCancel(true);
        Intent intent = new Intent(this, NotificationShow.class);
        TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
        stackBuilder.addParentStack(NotificationShow.class);
        stackBuilder.addNextIntent(intent);
        PendingIntent pendingIntent = stackBuilder.getPendingIntent(0,
                PendingIntent.FLAG_UPDATE_CURRENT);
        mBuilder.setContentIntent(pendingIntent);

AndroidManifest.xml中设置android:parentActivityName属性值.

        <activity
            android:name="com.shulf.notificationtest.NotificationShow"
            android:parentActivityName=".MainActivity" >
        </activity>

这样, 当通知栏被点击后, 显示NotificationShow Activity, 当点击back时, 不会回到桌面, 而是进入app的主页面.

之前要想达到同样目的, 需要在Activity中记录一个flag值, 用来标记这个Activity是从notification打开的, 然后在Activity的 onBackPressed()中做处理导航进入MainActivity.

----DONE.---------

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容