天天看点

Android 启动模式中巧用singleTask

一、问题的由来

我们的首页底部导航是这样的

Android 启动模式中巧用singleTask

有个需求就是,我们在首页界面中点啊点啊,点到一个商品详情页,加入购物车之后,有个按钮,可以直接跳回首页,并转到购物车选项。可能你会说直接跳回去,然后设置为购物车那一页不就行了么,然而并非如此。

二、singleTask介绍

只有一个实例。在同一个应用程序中启动他的时候,若Activity不存在,则会在当前task创建一个新的实例,若存在,则会把task中在其之上的其它Activity destory掉并调用它的onNewIntent方法。其他复杂的介绍就不多说了,可参考http://blog.csdn.net/shinay/article/details/7898492

三、 开始实现

1.设置为singleTask启动模式

<activity
            android:name=".MainTabActivity"
            android:launchMode="singleTask"
            android:screenOrientation="portrait" />
           

2.商品详情中调回去,并且加上标志信息

Intent intent=new Intent(this,MainTabActivity.class);
        intent.putExtra("from", "goodDetail");
        startActivity(intent);
           

3.首页中重写onNewIntent,根据标志信息,转到指定位置

@Override
    protected void onNewIntent(Intent intent) {
        if(intent.getStringExtra("from").equals("goodDetail")){
            ToShopCart();
        }
        super.onNewIntent(intent);
    }