android传递context
㈠ Android中Context传输问题
context你可以传祥旁一个activity进来,activity里面可以获取到渗宴晌context上下文的内容丛锋.
㈡ Android中,Context,什么是Context
context其实就是句柄,只不过不像windows一样,每个资源都可以是一个句柄,Android的一个句柄包含了很多全局信息,比如说Activity就是一个句柄。
官方文档的解释是:Context提供了关于应用环境全局信息的接口。它是一个抽象类,它的执行被Android系统所提供。它允许获取以应用为特征的资源和类型。同时启动应用级的操作,如启动Activity,broadcasting和接收intents。
㈢ 初学Android开发,如何在thread中传入context
自定义MyRunnable内部类实现Runnable接口
将Context作为内部类MyRunnable的成员变量
在主程序中使用并启动子线程,查看log输出是否正确
具体代码如下:
java">{
{
/**
*成员变量Context
*/
Contextcontext;
/**
*构造函数将程序所需Context传入
*/
publicMyRunnable(Contextcontext){
//为成员变量赋缺敏值
this.context=context;
}
@Override
publicvoidrun(){
//测试使用context
Log.i("",context.getPackageName());
}
}
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
//构造MyRunnable并传入所需Context
MyRunnablerunnable=newMyRunnable(this);
Threadthread=newThread(runnable,"测试线程团丛");
//启动线程
thread.start();
}
}
注意:内部类中对于Context的引用要及时释放,以防止程塌扮樱序内存泄漏!
㈣ android,怎么把一个activity的context数据通过intent传到新的activity。
通过intent是将context传不过去的。
不过你要从新的activity跳到之前的activity,直接在新activity里startActivity(this,oldActivity.class)就行了啊,需要onReceive里的context干嘛?
有一种方法,就在你的Service类里面定义一个Context类型静态成员老亮xxx,每次onRecive的时候保存起来,芦扰在新的activity直接通过youService.xxx即可。用完记得销毁陪含旦
㈤ android context是什么
Context字面意思是上下文,位于framework package的android.content.Context中,其实该类为LONG型,类似Win32中的Handle句柄。很多方法需要通过 Context才能识别调用者的实例:比如说Toast的第一个参数就是Context,一般在Activity中我们直接用this代替,代表调用者的实例为Activity,而到了一个button的onClick(View view)等方法时,我们用this时就会报错,所以我们可能使用ActivityName.this来解决,主要原因是因为实现Context的类主要有Android特有的几个模型,Activity以及Service。
Context提供了关于应用环境全局信息的接口。它是一个抽象类,它的执行被Android系统所提供。它允许获取以应用为特征的资源和类型。同时启动应用级的操作,如启动Activity,broadcasting和接收intents。
㈥ 怎样了解android中的context
Android中context可以作很多操作,但是最主要的功能是加载和访问资源。在android中常用两种context,一种和态是application context,一种是activity context,通常我们在各种类和方法间传递的是activity context。
区别联系:
public class MyActivity extends Activity {
public void method() {
mContext = this; // since Activity extends Context
mContext = getApplicationContext();
mContext = getBaseContext();
}
}
this 是Activity 的实例,扩展了Context,其生命周期是Activity 创建到销毁。getApplicationContext()返回应用的上下大辩文,生命周期是整个应用,应用摧毁它才摧毁滚棚缺。Activity.this的context 返回当前activity的上下文,属于activity ,activity摧毁他就摧毁
getBaseContext() 返回由构造函数指定或setBaseContext()设置的上下文,SDK文档很少,不推荐使用
搞清楚了生命周期就会在使用过程中犯错误,比如有一个全局的数据操作类用到了context,这个时候就要getApplicationContext 而不是用ACtivity,这就保证了数据库的操作与activity无关(不会一直引用Activity的资源,防止内存泄漏)
㈦ android中的context和this的区别
在android中常常会遇到与context有关的内容,特写下这篇blog,浅论一下context : 在语句 AlertDialog.Builder builder = new AlertDialog.Builder(this); 中,要求传递的 参数就是一个context,在这里我们传入的是this,那么这个this究竟指的是什么东东呢? 这里的this指的是Activity.this,是这个语句所在的Activity的this,是这个Activity 的上下文。网上有很多朋友在这里传入this.getApplicationContext(),这是不对的。 AlertDialog对象是依赖于一个View的,而View是和一个Activity对应的。 于是,这里涉及到一个生命周期的问题,this.getApplicationContext()取的是这个应 用程序的Context,Activity.this取的是这个Activity的Context,这两者的生命周期是不同 的,前者的生命周期是整个应用,后者的生命周期只是它所在的Activity。而AlertDialog应 该是属于一个Activity的,在Activity销毁的时候它也就销毁了,不会再存在;但是,如果传 入this.getApplicationContext(),就表示它的生命周期是整个应用程序,这显然超过了它 的生命周期了。 所以,在这里我们只能使用Activity的this
context指的上下文环境
this指的是本类的对象,
一般情况:有context但是不一定有this,有this一定有context环境
㈧ 为什么android中都需要传递参数Context
context的作用,就是android应用山扰连接service的桥梁。
比如Activity中有一个方法,getSystemService()。
这个方法调到最后,实际上是调用的ContextImpl的getSystemService()方法。
而ContextImpl是对Context的实现。
在Android系统中,有很多的service,也就是服务。
程序如果用到系统功能,一般都是调用逗灶旦服务间接完成的。
也就是在Android系统中存在许多C/辩拿S架构。
㈨ android 开发中两个类之间的context传递问题..
getApplicationContext():在这里空指针 得到的伍谨是NUll 所以 不行:这通常“只能”用于当你需腔凳基要的上下文的生命周期是独立于当前上下文粗兆的时候 。所以
button.setOnClickListener(new MyClick(getApplicationContext()));不能用,改成button.setOnClickListener(new MyClick(this));或者button.setOnClickListener(new MyClick(HelloWorld11Activity.this));