从不扩展Activity的类的startService

Ale*_*ght 15 service android android-context android-activity

我创建了一个扩展IntentService的类,我想从一个不是Activity的类启动服务,因此,我无法访问Context对象.我在文档或网络上找不到这样的例子.可能吗 ?

ρяσ*_*я K 19

您需要将当前的Activity上下文传递给非Activity类,以便从非活动类启动服务,如下所示:

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);
  }
}
Run Code Online (Sandbox Code Playgroud)

并传递当前上下文:

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();
    }
}
Run Code Online (Sandbox Code Playgroud)