android 一些少见和小细节BUG

1:BUG现象 android更新安装包,安装APK以后出现完成和打开,点打开以后闪退到系统主界面(原本应该是打开运行app应用)

这个现象是由于我我在AndroidManifest.xml的主Activity设置了android:launchMode="singleTask"。

原代码 

	         Intent intent = new Intent();
		// 执行动作
		intent.setAction(Intent.ACTION_VIEW);
		// 执行的数据类型
		intent.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive");
		context.startActivity(intent);


singleTask模式的Activity不管是位于栈顶还是栈底,再次运行这个Activity时,都会destory掉它上面的Activity来保证整个栈中只有一个自己

Intent 对象里包含了 FLAG_ACTION_NEW_TASK,情况将发生变化,–系统将为新的 Activity “寻找”一个不同于调用者的 Task


解决方案是增加 intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)

	Intent intent = new Intent();
		// 执行动作
		intent.setAction(Intent.ACTION_VIEW);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
		// 执行的数据类型
		intent.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive");
		context.startActivity(intent);


你可能感兴趣的:(android 一些少见和小细节BUG)