之前的代码,如果黑屏后,按home键退出到桌面,再回来的话,会生成两个黑屏实例,导致结束黑屏后,只能结束一个黑屏,其他黑屏还需要手动退出,效果特别不好。
改了一下代码,2个步骤:
改了一下代码,2个步骤:
1、修改跳转模式:
if(common.isBlack){
Log.i("SystemTool", "StartTeachWindow 进到黑屏");
Intent intent = new Intent();
intent.setClass(ctx,ZhengzaishangkeActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
ctx.startActivity(intent);
}else{
Log.i("SystemTool", "StartTeachWindow 进到主屏");
Intent in = new Intent(Intent.ACTION_MAIN);
in.setClass(ctx, TabHostActivity.class);
in.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
ctx.startActivity(in);
}
设置模式用Intent.FLAG_ACTIVITY_SINGLE_TOP
一开始会报错,说从外部启动activity必须用new_task。
解决办法是直接传递activity本身,不要传递getApplicationContext,连启动时都不要写 ctx.getapplicationContext().startactivity
而是直接写 ctx.startactivity()就可以了
2、本身的activity启动模式
在AndroidManifest.xml中设置activity的属性android:launchMode="singleTask"
完美解决。