android,想在工具类中显示对话框,如何获取主activity的context
展开全部
在android中context可以作很多操作,但是最主要的功能是加载和访问资源。在android中有两种context,一种是 application context,一种是activity context,通常我们在各种类和方法间传递的是activity context。
比如一个activity的onCreate:
protected void onCreate(Bundle state) {
super.onCreate(state);
TextView label = new TextView(this); //传递context给view control
label.setText("Leaks are bad");
setContentView(label);
}
把activity context传递给view,意味着view拥有一个指向activity的引用,进而引用activity占有的资源:view hierachy, resource等。
这样如果context发生内存泄露的话,就会泄露很多内存。
这里泄露的意思是gc没有办法回收activity的内存。
Leaking an entire activity是很容易的一件事。
当屏幕旋转的时候,系统会销毁当前的activity,保存状态信息,再创建一个新的。
比如一个activity的onCreate:
protected void onCreate(Bundle state) {
super.onCreate(state);
TextView label = new TextView(this); //传递context给view control
label.setText("Leaks are bad");
setContentView(label);
}
把activity context传递给view,意味着view拥有一个指向activity的引用,进而引用activity占有的资源:view hierachy, resource等。
这样如果context发生内存泄露的话,就会泄露很多内存。
这里泄露的意思是gc没有办法回收activity的内存。
Leaking an entire activity是很容易的一件事。
当屏幕旋转的时候,系统会销毁当前的activity,保存状态信息,再创建一个新的。
2015-03-03
展开全部
在调用工具类的函数的时候,把activity的context作为参数传递过去不久Ok了吗?
如你的工具类里面的函数可以这样定义啊
public static String getAvailableMemory(Context context){ …………}
然后再主类中这样调用
SystemInfoUtil.getAvailableMemory(this); 这样就不会报错了。
如你的工具类里面的函数可以这样定义啊
public static String getAvailableMemory(Context context){ …………}
然后再主类中这样调用
SystemInfoUtil.getAvailableMemory(this); 这样就不会报错了。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2015-03-03
展开全部
作为参数传进来不就好了吗
追问
直接传MainActivity.this要报错
追答
报什么错
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询