使用Android的getBaseContext,getApplicationContext或者使用Activity的“this”
我已经使用了这个问题了很多,并发现了什么时候使用getBaseContext , getApplicationContext或一个Activity自己的这个指针的许多不同的build议。
经常出现的三条规则似乎很有意义 –
- 对于上下文活动的长期引用,只要应用程序存在,就应该使用getApplicationContext,因为这存在
- 对于生命周期与其活动密切相关的环境,应该使用自己的活动环境( this )
- 静态存储上下文指针只是非常谨慎(如果可能的话,根本不会)
假设这些都是正确的, getBaseContext的用法是什么 ?
我已经看到了很多例子,其中使用了新的意图 –
Intent intent = new Intent(getBaseContext(), myClass.class);
与 –
Intent intent = new Intent(this, myClass.class);
哪一个是正确的或者推荐的方法,为什么?
getBaseContext()是ContextWrapper的方法。 ContextWrapper是“代理上下文的实现,它将所有调用简单地委托给另一个上下文,可以被修改为不改变原始上下文的子类。 (根据javadocs)
所以这是用来委托调用另一个上下文。
- 如何停止在Android的webview播放YouTubevideo?
- 如何在onPrepareOptionsMenu切换菜单条目时刷新ActionBar?
- Android:UnknownHostException
- Android:我如何传递参数到AsyncTask的onExExecute()?
- Android中的意图filter是什么?
- 如何在Android中创build具有圆angular的ListView?
- 如何启动仅限服务的Android应用程序
- 如何将Eclipse项目导入Android Studio?
- Android的 – 如何dynamic更改菜单项文字onOptionsItemsSelected或onCreateOptionsMenu之外