全局获取Context的技巧
Posted index-xue
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了全局获取Context的技巧相关的知识,希望对你有一定的参考价值。
回想起我所学的内容,就会发现很多时候都会用到Context,比如弹出Toast的时候,启动活动,发送广播,操作数据库的时候都会用到。大多时候我们都是在活动中操作的,所以不用为获取Context而发愁,因为活动本身就是一个Context,但是当应用的架构复杂起来的时候,你就会发现,很多代码都会脱离活动,这时候你有需要Context,这就是一件令你头疼的时候了。下来我们就讲讲如何获取Context。
为简单,我们举个例子来说明下:
public class HttpUtil{
public static void sendHttpRequest( final String address,final HttpCallbackListener listener){
new Thread(
new Runnable(){
public void run(){
HttpURLConnection conn = null;
URL url = null;
try{
url = new URL(address);
conn = (HttpURLConnection)url.openConnection();
conn.setRequestMethod("GET");
conn.setConnectTimeout(8000);
conn.setReadTimeout(6000);
conn.setDoInput(true);
conn.setDoOutput(true);
InputStream in = conn.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
StringBuilder res = new StringBuilder();
String line = "";
while((line = reader.readLine())! = null){
res.addpend(line);
if(listener != null){
listener.onFinsh(res.toString());
}
}
catch(Exception e){
if(listener != null){
listener.onError(e);
}
}
finally{
if(conn != null){
conn.disconnect();
}
}
}
}
}
).start();
}
}
由上可知,获取Context类是一件很难的事,为此android提供了一个Application类,每当应用程序启动的时候,系统就会自动将这个类进行初始化。我们定制一个自己的Application类。
public class Myapplication extends Application{
private static Context context;
public void onCreate(){
context = getApplicationContext();
}
public static Context getContext(){
return context;
}
}
以上是关于全局获取Context的技巧的主要内容,如果未能解决你的问题,请参考以下文章
Android开发小技巧-------如何获取全局的Context