请问android中。在工具类里如何获取Activity的Context 因为我要在工具类里d出Dialog,但是getApplication

请问android中。在工具类里如何获取Activity的Context 因为我要在工具类里d出Dialog,但是getApplication,第1张

工具类的构造函数中添加一个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等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/10102365.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存