在Android编程中,究竟是什么Context类以及它用于什么?
我在开发者网站上看过它,但我无法理解它.
在Android应用中,以下方法有什么问题:
public class MyApp extends android.app.Application {
private static MyApp instance;
public MyApp() {
instance = this;
}
public static Context getContext() {
return instance;
}
}
Run Code Online (Sandbox Code Playgroud)
并传递它到处(例如SQLiteOpenHelper)需要上下文(当然不泄漏)?
在我看过的各种Android代码中:
public class MyActivity extends Activity {
public void method() {
mContext = this; // since Activity extends Context
mContext = getApplicationContext();
mContext = getBaseContext();
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我找不到任何合适的解释,哪些更好,以及在什么情况下应该使用.
关于这方面的文件的指示,以及关于如果选择了错误的可能会破坏的指导,将不胜感激.
这让我很难过,我在Android 2.1-r8 SDK中使用它:
ProgressDialog.show(getApplicationContext(), ....);
Run Code Online (Sandbox Code Playgroud)
还有
Toast t = Toast.makeText(getApplicationContext(),....);
Run Code Online (Sandbox Code Playgroud)
使用getApplicationContext()崩溃ProgressDialog和Toast....导致我这个问题:
尽管分享了"上下文"的措辞,但活动上下文和应用程序上下文之间的实际差异是什么?