gtd*_*vel 24 service android android-context android-activity
这可能是一个简单的问题,但我只是想确保我是对的.
在我的Android应用程序中,我有一个使用的构造函数:
activity.getApplicationContext()
Run Code Online (Sandbox Code Playgroud)
活动作为参数传递给构造函数.
问题是我从服务中调用此类.如果我创建第二个构造函数接受服务作为参数并使用service.getApplicationContext
?我会获得相同的应用程序上下文吗?
Ran*_*ku' 56
获取应用程序上下文的最简单方法是:
创建一个App
扩展的类android.app.Application
public class App extends Application {
public static Context context;
@Override public void onCreate() {
super.onCreate();
context = getApplicationContext();
}
}
Run Code Online (Sandbox Code Playgroud)
修改您AndroidManifest.xml
的<application>
标签以获得该属性android:name="your.package.name.App"
.
只要您需要应用程序上下文,就可以从中获取它App.context
.
Application
始终首先初始化您的流程是否运行,无论是活动,服务还是其他.您将始终可以访问应用程序上下文.
我会获得相同的应用程序上下文吗?
是.你可以查看他们提供的android文档
getApplicationContext()
Run Code Online (Sandbox Code Playgroud)
返回当前进程的单个全局Application对象的上下文.
所以不应该为整个申请过程改变它.
请注意这个:
getApplicationContext()
通常只应在需要生命周期与当前上下文分离的上下文时使用,该上下文与进程的生命周期而不是当前组件相关联.
如我错了请纠正我.
谢谢