2012-12-14 62 views

回答

19

您需要将当前活动的上下文传递到非活动类非活性类作为启动服务:

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(); 
      } 

} 
+1

我明白了,谢谢! –

+0

@AlexCartwright:最受欢迎! :) –

2

使用此代码开始和停止服务

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(); 
}