IntentService を拡張するクラスを作成しました。Activity ではないクラスからサービスを開始したいので、Context オブジェクトにアクセスできません。ドキュメントや Web でこの例を見つけることができませんでした。出来ますか ?
質問する
10606 次
2 に答える
20
非アクティビティ クラスからサービスを開始するには、現在のアクティビティ コンテキストを非アクティビティ クラスに渡す必要があります。
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();
}
}
于 2012-12-14T16:03:45.137 に答える
3
このコードを使用してサービスを開始および停止します
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();
}
于 2012-12-14T17:41:00.040 に答える