美文网首页Android故事Android知识Android开发
Android动态设置通知点击后的跳转Activity

Android动态设置通知点击后的跳转Activity

作者: 骑着海去看蜗牛 | 来源:发表于2017-02-09 18:22 被阅读499次

    在Android中,通常我们都会设置一个通知栏点击后的跳转目的页面,通过Intent的方式。那如果有一个需求是如果应用在后台,不再跳转到目的页面,只是恢复用户在后台的当前页面,怎么做?

    Stack栈

    我们可以通过栈的方式来实现,思路就是将用户的操作行为中的每一个activity做入栈和出栈处理,我们知道栈是先入后出的规则,Activity本身在系统中也是通过栈来管理,这样我们就能在通知到来的时候,设置通知跳转的目标为栈顶的Activity,就能做到恢复用户之前后台最后操作页面Activity。

    // 自定义一个父类继承AppCompateActivity,每一个Activity都继承该父类
    private static final Stack<Activity> sActivities = new Stack<>();
    
    // 在onCreate中将当前Activity入栈
    @Override
    protected void onCreate(Bundle arg0) {
        super.onCreate(arg0);
        sActivities.push(this);
    }
    
    // 在onDestroy中将当前Activity出栈
    @Override
    protected void onDestroy() {
        super.onDestroy();
        sActivities.remove(this);
    }
    

    深入实践

    如果用户强制退出了App,比如App崩溃了,那我们如果想让用户下次打开App的时候继续浏览这个页面,该怎么办?
    想到了吗?其实也能用这种方式,将用户行为存储到数据库,即更新存储栈顶的Activity,下次打开app如果有值并且非主页,那就跳转到存储的栈顶Activity。完美实现。

    相关文章

      网友评论

        本文标题:Android动态设置通知点击后的跳转Activity

        本文链接:https://www.haomeiwen.com/subject/hnhwittx.html