在工具类的构造函数中添加一个Context的参数,并设置一个全局变量Context,这样在某个Activity类中实例化这个工具类的时候就可以将Context对象传过去了,希望对你有帮助!
ServletActionContext是类对象,直接访问,可以通过ServletActionContext获取:
<1>取得>
AsyncTask主要用来更新UI线程,比较耗时的 *** 作可以在AsyncTask中使用。
AsyncTask是个抽象类,使用时需要继承这个类,然后调用execute()方法。注意继承时需要
设定三个泛型Params,Progress和Result的类型,如AsyncTask<Void,Inetger,Void>:
Params是指调用execute()方法时传入的参数类型和doInBackgound()的参数类型
Progress是指更新进度时传递的参数类型,即publishProgress()和onProgressUpdate()的参数类型
Result是指doInBackground()的返回值类型
上面的说明涉及到几个方法:
1doInBackgound() 这个方法是继承AsyncTask必须要实现的,运行于后台,耗时的 *** 作可以在这里做
2publishProgress() 更新进度,给onProgressUpdate()传递进度参数
3onProgressUpdate() 在publishProgress()调用完被调用,更新进度
可以写一个自定义内容的xml格式的文件放到assert文件夹,然后自行用文件流来解析,例如里面写<content> <string>teststring</string> </content>,然后用xmlpull解析出来就是了。
方法如下:
实现
1创建一个类让其实现orgspringframeworkcontextApplicationContextAware接口来让Spring在启动的时候为我们注入ApplicationContext对象
示例代码:
import orgspringframeworkbeansBeansException;
import orgspringframeworkcontextApplicationContext;
import orgspringframeworkcontextApplicationContextAware;
public class MyApplicationContextUtil implements ApplicationContextAware {
private static ApplicationContext context;
//声明一个静态变量保存
public void setApplicationContext(ApplicationContext contex) throws BeansException {
thiscontext=contex;
}
public static ApplicationContext getContext(){
return context;
}
public final static Object getBean(String beanName){
return contextgetBean(beanName);
}
public final static Object getBean(String beanName, Class<> requiredType) {
return contextgetBean(beanName, requiredType);
}
}
2在applicationContextxml文件中配置此bean,以便让Spring启动时自动为我们注入ApplicationContext对象
例:
<!-- 这个bean主要是为了得到ApplicationContext 所以它不需要其它属性-->
<bean class="orgingspringutilMyApplicationContextUtil"></bean>
3有了这个ApplicationContext之后我们就可以调用其getBean("beanName")方法来得到由Spring 管理所有对象
自定义MyRunnable内部类实现Runnable接口
将Context作为内部类MyRunnable的成员变量
在主程序中使用并启动子线程,查看log输出是否正确
具体代码如下:
public class Test extends BaseActivity {class MyRunnable implements Runnable {
/
成员变量Context
/
Context context;
/
构造函数 将程序所需Context传入
/
public MyRunnable(Context context) {
//为成员变量赋值
thiscontext = context;
}
@Override
public void run() {
//测试使用context
Logi("", contextgetPackageName());
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
superonCreate(savedInstanceState);
// 构造MyRunnable 并传入所需Context
MyRunnable runnable = new MyRunnable(this);
Thread thread = new Thread(runnable, "测试线程");
//启动线程
threadstart();
}
}
注意:内部类中对于Context的引用要及时释放,以防止程序内存泄漏!
Context字面意思是上下文,位于framework package的androidcontentContext中,其实该类为LONG型,类似Win32中的Handle句柄。很多方法需要通过 Context才能识别调用者的实例:比如说Toast的第一个参数就是Context,一般在Activity中我们直接用this代替,代表调用者的实例为Activity,而到了一个button的onClick(View view)等方法时,我们用this时就会报错,所以我们可能使用ActivityNamethis来解决,主要原因是因为实现Context的类主要有Android特有的几个模型,Activity以及Service。
Context提供了关于应用环境全局信息的接口。它是一个抽象类,它的执行被Android系统所提供。它允许获取以应用为特征的资源和类型。同时启动应用级的 *** 作,如启动Activity,broadcasting和接收intents。
以上就是关于请问android中。在工具类里如何获取Activity的Context 因为我要在工具类里d出Dialog,但是getApplication全部的内容,包括:请问android中。在工具类里如何获取Activity的Context 因为我要在工具类里d出Dialog,但是getApplication、怎么获取servletactioncontext、android,异步任务类中的Toast如何获得Context等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)