少年辛苦终身事,莫向光阴惰寸功。这篇文章主要讲述关于App的launcherActivity重复启动的问题相关的知识,希望能为你提供帮助。
【关于App的launcherActivity重复启动的问题】测试在某些华为机型出现了非常奇怪的一个现象:
启动App,首先启动的是Launcher Activity,正常使用,跳转到一个A Activity,退到后台,然后从手机桌面点击app图标,
这个时候又启动Launcher Activity了
本质就是
Launcher Activity->
A Activity->
退后台->
点击App桌面图标->
Launcher Activity
这样看起来就像重新启动了App一样,不能接受。
解决方法:
再Launcher Activity onCreate里面做判断,如果它不是Root Activity,就直接结束。
`
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private static final String TAG = "
MainActivity"
;
private static final int REQUEST_CODE = 1001;
private TextView tvCamera;
private TextView tvVersion;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (checkoutActivityError()) {
Log.e(TAG, "
this activity is error just finish it"
);
finish();
return;
}
setContentView(R.layout.activity_main);
````
}private boolean checkoutActivityError() {
// 避免从桌面启动程序后,会重新实例化入口类的activity
if (!this.isTaskRoot()) {
Intent intent = getIntent();
if (intent != null) {
String action = intent.getAction();
if (intent.hasCategory(Intent.CATEGORY_LAUNCHER) &
&
Intent.ACTION_MAIN.equals(action)) {
return true;
}
}
}
return false;
}
}
`
推荐阅读
- 快速搞定APP移动端自动化测试
- 自动化测试-环境搭建appiumfor windows
- DES加密算法(密文只有字符串和数字)java和android加密的结果一致(可放在url中)
- vue项目搭建app.vue
- HTML5应用程序缓存Application Cache
- Docker容器启动失败 Failed to start Docker Application Container Engine
- Junit5 + YAML 参数化和数据驱动,让 App 自动化测试更高效
- 浅谈 Web App 动画效率
- android ndk error: undefined reference to '__memcpy_chk'