Android(安卓)判断应用是否在运行以及判断处于顶层的activity
16lz
2021-01-26
<pre name="code" class="java">1、必须添加权限:<uses-permission android:name="android.permission.GET_TASKS"/>
/** * * @Description: TODO 判断activity是否在应用的最顶层 * @param context 上下文 * @param intent intent携带activity * @return boolean true为在最顶层,false为否 * @author Sunday * @date 2016年3月15日 */public static boolean isTop(Context context, Intent intent) {ActivityManager am = (ActivityManager) context.getSystemService(context.ACTIVITY_SERVICE);List<RunningTaskInfo> appTask = am.getRunningTasks(1);if (appTask.size() > 0 && appTask.get(0).topActivity.equals(intent.getComponent())) {return true;} else {return false;}}/** * * @Description: TODO 判断应用是否在运行 * @param context 上下文 * @param intent intent携带activity * @return boolean true为在运行,false为已结束 * @author Sunday * @date 2016年3月15日 */public static boolean isRuning(Context context, Intent intent) {ActivityManager am = (ActivityManager) context.getSystemService(context.ACTIVITY_SERVICE);List<RunningTaskInfo> tasks = am.getRunningTasks(1);if (tasks.size() > 0 && tasks.get(0).baseActivity.equals(intent.getComponent())) {return true;} else {return false;}}
3、调用示例 Intent intent = new Intent(context, MainActivity.class); if(UtilsHelp.isTop(context, intent)){ MainActivity.switchPage(1); Log.e("RunningTaskInfo", "直接跳入"); }else{ intent.putExtra("message", "message"); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP ); context.startActivity(intent); Log.e("RunningTaskInfo", "重启应用"); }
更多相关文章
- Android友盟判断手机是否存在微博客户端
- Android(安卓)7.0 判断是否支持多用户模式
- DialogFragment 报错汇总
- Android(安卓)播放视频常见问题小结
- Android(安卓)判断当前的界面是否是桌面的方法
- Android(安卓)之 上下文菜单、选项菜单、子菜单
- Android(安卓)判断手机是否安装某个应用
- Android(安卓)unbindservice异常相关问题
- 获得android手机的联网状态