android判断activity是否加载

在Android应用中,通常需要处理从不同场景进入聊天界面的情况。例如,从好友列表Activity A进入聊天Activity B。当用户按下Home键或者通过通知栏直接进入B时,需要在B的onReturn()方法中正确处理返回操作。正常情况下,B调用finish()会返回到A。但如果在主Activity main被finish()后,直接finish() B会导致应用回到桌面。为解决此问题,可以使用ActivityManager检查当前运行任务,如果入口Activity是RunningTaskInfo的baseActivity,则说明应用仍在运行,只需finish() B,否则重新启动应用。
摘要由CSDN通过智能技术生成

       聊天应用上常会有好友列表,好友对话列表,逻辑一般是通过点击好友列表上的好友跳转到聊天页面。我们假设好友列表的Activity为A,好友对话列表的Activity为B。正常逻辑是A->B;在B中onReturn()方法是返回到A;

       当聊天应用在外台运行时,有两种情况,一种是点击home键导致程序onPause(),另外一种是退出使得程序的main.activity也应用了finish()。home键的时候main.activity仍然在栈中,这种情况和程序在其它页面时收到通知,点击通知栏直接进入B的情况是一致的;在B中能出只要finish()就可以了,页面会直接返回到之前一个页面;但有一种情况就是当main.finish()后,如果B也是直接finish(),则程序直接回到桌面了;这样的体验就不好,感觉B是一个单独的应用了一样,这时我们可以通过ActivityManager来获取当前应用活动的任务信息,看一下应用的入口Activity是不是RunningTaskInfo中的baseActivity,如果是则代码程序是在运行着的,只需要finish就可以了,否则重新打开应用就好。

Intent mainIntent = new Intent(context, main.class);
		ActivityManager am = (ActivityManager) context
				.getSystemService(ACTIVITY_SERVICE);
		List<RunningTaskInfo> appTask = am.getRunningTasks(1);
		if (appTask.size() > 0
			
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值