java – 后台服务上的Android getContext
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 后台服务上的Android getContext,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1632字,纯文字阅读大概需要3分钟。
内容图文
我正在尝试创建一个即使我的应用程序关闭也能运行的服务.但是,我需要在此服务中使用我的应用上下文.当应用程序运行时,该服务也可以正常工作,但是当我关闭应用程序(调用onDestroy())时,getContext()始终返回null.
服务
public class SubscribeService extends Service {
private Context context;
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
context = this; //Returns null when service is running on background
context = MyApp.getContext(); //Also null
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
//do stuff using context
}
MyApp的
public class MyApp extends Application {
private static Context context;
public static Context getContext() {
return context.getApplicationContext();
}
@Override
public void onCreate() {
context = getApplicationContext();
super.onCreate();
}
}
服务从Activity onCreate()开始
startService(new Intent(this, SubscribeService.class));
在这种情况下我应该如何使用Context?
编辑
在Onik的帮助下管理以使其正常工作.
我只需要调用MyApp.getContext();在super.onCreate()之前;
像这样:
@Override
public void onCreate() {
context = MyApp.getContext();
super.onCreate();
}
解决方法:
Service扩展为Context.您可以使用它,这是对Service实例的引用.
关于以下SubscribeService类的代码,请在下面的评论中提供更多详细信息:
@Override
public void onCreate() {
super.onCreate();
context = this;
context = MyApp.getContext();
}
在您的服务的onCreate()上下文中=基本编程范例不能为空.另一方面,context = MyApp.getContext()可以为null,但很可能是因为此代码行位于MyApp类中的super.onCreate()之后:
@Override
public void onCreate() {
context = getApplicationContext();
super.onCreate();
}
替换最后两行的顺序.
内容总结
以上是互联网集市为您收集整理的java – 后台服务上的Android getContext全部内容,希望文章能够帮你解决java – 后台服务上的Android getContext所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。