startService from class that does not extend Activity
10,599
Solution 1
You will need to pass current Activity context to non Activity class for starting service from non-activity class as:
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);
}
}
and pass current context as:
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();
}
}
Solution 2
Use this code Start and Stop Service
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);
}
}
This just create object of this class
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();
}
![Admin](/assets/logo_square_200-5d0d61d6853298bd2a4fe063103715b4daf2819fc21225efa21dfb93e61952ea.png)
Author by
Admin
Updated on June 06, 2022Comments
-
Admin about 2 years
I have created a class that extends IntentService, and I would like to start the service from a class that is not an Activity, therefore, I do not have access to a Context object. I could not find an example of this in the documentation or the web. Is it possible ?