Android

使Activity只存在一个实例(解决微信登录 原有登录界面无法

2018-02-11  本文已影响98人  呱呱_

前言

最近项目集成微信登录中遇到一个问题:微信登录成功后,退出应用时,原有的普通登录页面还存在。

第一反应就是在跳转的时候怎么将其finish(),后来结合实际情况,好像并不方便。
于是想到:在跳转后续页面的时候,从LoginActivity中转一下,然后到达指定页面,这样就可以将LoginActivity关闭。
于是面临一个新问题,如何让LoginActivity只创建一次,于是我们想到了launchMode。

<activity
    android:name=".LoginActivity"
    android:launchMode="singleInstance" >
</activity>
@Override
protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
    // 跳转首页或者其他操作
    ...
}

至于我们为什么不使用singleTask,因为在创建WXEntryActivity时创建了新的任务栈。singleTask在新的任务栈需要创建新的LoginActivity实例;而使用singleInstance,无论位于哪个Task中,系统都会把该LoginActivity所在的Task转到前台并显示LoginActivity。

Android四种启动模式

上一篇 下一篇

猜你喜欢

热点阅读