首页 > 代码库 > 关于Android平台上面is not valid; is your activity running?
关于Android平台上面is not valid; is your activity running?
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?
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。