1.上一篇讲到如何点击外部链接跳转app的方法,经过测试,当打开App的时候,点击链接时候会重新打开一个新的App进程,如果你想从原来的打开APP跳进去,那么使用SingleTask模式配合android:taskAffinity属性一起使用.
如果单独使用Singletask启动模式时候你发现点击跳链接只会跑到App的MainActivity中.
Intent i_getvalue = getIntent();
String action = i_getvalue.getAction();
if(Intent.ACTION_VIEW.equals(action)) {
Uri uri = i_getvalue.getData();
if (uri != null) {
String id = uri.getQueryParameter("id");
Log.d("TAg",id);
Intent intent = new Intent();
intent.setClass(this, BorrowDetailsActivity.class);
intent.putExtra(EXTRA_KEY_2, id);
startActivity(intent);
}
}
里面action为null,uri 是null 根本接受不到外部通过协议scheme里面传进来的uri ,
解决方案:
在Appcation里面配置 android:taskAffinity
<application
android:name=".AppApplication"
android:allowBackup="true"
android:icon="@mipmap/icon"
android:label="@string/app_name"
android:supportsRtl="true"
android:taskAffinity="com.cfiigroup.zhehui.hepaidai"
android:theme="@style/AppTheme.NoActionBar">
主函数Mian里面启动模式设为singletask
在跳转MianActivity里面从写OnIntent方法在里面从新接受
Uri uri = i_getvalue.getData();方法
继续解析,写跳转方法这样子就可以打开一个APP,而不是开2个进程,提高用户体验.
在android手机进程开多了影响手机流畅度,导致手机APP使用时界面卡住,不顺.