码迷,mamicode.com
首页 > 移动开发 > 详细

Android判断应用程序是否在前台

时间:2014-11-28 21:31:08      阅读:242      评论:0      收藏:0      [点我收藏+]

标签:android   io   ar   java   for   on   cti   ad   时间   

Android app中通过Broadcast Receiver接受Alarm的定时消息,以便发送Notification;这里发送Notification前要求app自身不在运行状态;检测app自身是否在前台的一个宗旨是:判断app所有的Activity是否有在前台的;在网上找了好长一段时间,发现一个个人觉得比较好的判定方法:

public boolean isAppForground(Context mContext) {
    ActivityManager am = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);
    List<RunningTaskInfo> tasks = am.getRunningTasks(1);
    if (!tasks.isEmpty()) {
        ComponentName topActivity = tasks.get(0).topActivity;
        if (!topActivity.getPackageName().equals(mContext.getPackageName())) {
            return false;
        }
    }
    return true;
}

注:getRunningTasks方法,Android Document中说API level 21开始该方法将deprecated, 暂时没去测试,不知道会有多大影响

Android判断应用程序是否在前台

标签:android   io   ar   java   for   on   cti   ad   时间   

原文地址:http://my.oschina.net/u/146011/blog/350172

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!