智慧教学控制系统,控制页面不退出,返回后保证只有一个实例的办法

本文介绍了如何通过调整代码逻辑和设置Activity启动模式来解决应用程序中黑屏实例重复出现的问题,确保用户返回应用时只有一个黑屏实例运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前的代码,如果黑屏后,按home键退出到桌面,再回来的话,会生成两个黑屏实例,导致结束黑屏后,只能结束一个黑屏,其他黑屏还需要手动退出,效果特别不好。
改了一下代码,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"


完美解决。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值