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

关于Android平台上面is not valid; is your activity running?

时间:2015-01-27 18:24:11      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:

技术分享



Android平台上面可以通过好几种方式得到Context :

1、通过Activity的this

2、getApplicationContext()

3、getParent

这三种各自得到的是不同的,正常的话应该建议使用Activity.this.这个是最不容易出现问题的使用方法, 如果使用了第二种或者第三种的时候,将在Activity关闭掉的时候可能会出现异常 还是老老实实的使用Activity.this来得到Context的引用 


补充:  在显示Dialog前检测一下Activity是否运行结束 ,可以避免发生这个错误

检查Activity是否运行:

GET_TASKS权限,获取运行的活动

<uses-permission android:name="android.permission.GET_TASKS"/>

  public static boolean isActivityRunning(Context mContext,String activityClassName){
       ActivityManager activityManager = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);
        List<ActivityManager.RunningTaskInfo> info = activityManager.getRunningTasks(1);
        if(info != null && info.size() > 0){
            ComponentName component = info.get(0).topActivity;
            if(activityClassName.equals(component.getClassName())){
                return true;
            }
        }
        return false;
    }



关于Android平台上面is not valid; is your activity running?

标签:

原文地址:http://blog.csdn.net/honjane/article/details/43197591

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