Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 无法在线程内调用getApplicationContext()_Android_Multithreading - Fatal编程技术网

Android 无法在线程内调用getApplicationContext()

Android 无法在线程内调用getApplicationContext(),android,multithreading,Android,Multithreading,我正在Android Froyo系统上开发一个应用程序,一切都很好,只是当我创建一个服务时,该服务会产生几个线程。在其中一个线程中,我想停止服务。 显然,stopService()在thread类中超出了范围,getApplicationContext()调用也超出了范围。 那么在一个线程中,我可以得到当前的上下文吗 谢谢声明您自己的上下文 private Context mContext; 并使用而不是getApplicationContext()声明您自己的上下文 private Cont

我正在Android Froyo系统上开发一个应用程序,一切都很好,只是当我创建一个服务时,该服务会产生几个线程。在其中一个线程中,我想停止服务。 显然,stopService()在thread类中超出了范围,getApplicationContext()调用也超出了范围。 那么在一个线程中,我可以得到当前的上下文吗


谢谢

声明您自己的上下文

private Context mContext;

并使用而不是
getApplicationContext()

声明您自己的上下文

private Context mContext;

并使用而不是
getApplicationContext()

您可以尝试MyService.this.stopSelf()。或者,如果这不起作用,您可以在创建服务时存储对服务的引用。在oncreate中,可以执行上下文ctx=this。然后在线程ctx.stopSelf()中尝试MyService.this.stopSelf()。或者,如果这不起作用,您可以在创建服务时存储对服务的引用。在oncreate中,可以执行上下文ctx=this。然后在线程ctx.stopSelf()中,几乎不需要
getApplicationContext()
<代码>活动和
服务
都是
上下文
的子类。您几乎不需要
getApplicationContext()
<代码>活动和
服务
都是
上下文
的子类。