Android 从不扩展活动的类启动服务
我创建了一个扩展IntentService的类,我希望从一个不是活动的类启动服务,因此,我没有访问上下文对象的权限。我在文档或网络中找不到这方面的例子。是否可能?您需要将当前活动上下文传递给非活动类,以便从非活动类启动服务,如下所示:Android 从不扩展活动的类启动服务,android,android-activity,service,android-context,Android,Android Activity,Service,Android Context,我创建了一个扩展IntentService的类,我希望从一个不是活动的类启动服务,因此,我没有访问上下文对象的权限。我在文档或网络中找不到这方面的例子。是否可能?您需要将当前活动上下文传递给非活动类,以便从非活动类启动服务,如下所示: public class NonActivity { public Context context; public NonActivity(Context context){ this.context=context; } public
public class NonActivity {
public Context context;
public NonActivity(Context context){
this.context=context;
}
public void startServicefromNonActivity(){
Intent intent=new Intent(context,yourIntentService.class);
context.startService(intent);
}
}
并将当前上下文传递为:
public class AppActivity extends Activity {
NonActivity nonactiityobj;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
nonactiityobj=new NonActivity(CuttentActivity.this);
//start service here
nonactiityobj.startServicefromNonActivity();
}
}
使用此代码启动和停止服务
public class MyService {
Context context ;
public MyService(Context cont) {
this.context = context ;
}
public void StartMyService()
{
Intent i = new Intent(context,YourService.class);
context.startService(i);
}
public void StopMyService()
{
Intent i = new Intent(context,YourService.class);
context.stopService(i);
}
}
这只是创建这个类的对象
MyService mySevice ;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myService = new MyService(this);
//For Startting Service
myService.StartMyService();
//For Stopping Service
myService.StopMyService();
}