MyActivity.classからTestService.classにパラメーターを渡す必要があります。 MyActivityはActivityクラスで、TestServiceはメッセージを送信するために作成したサービスです。パラメータをアクティビティからサービスに渡す必要がありますが、サービスクラスでIntent i = getIntent();
を呼び出すと、エラーgetIntent()is undefinedが発生します。
では、どうすればアクティビティからサービスにパラメータを送信できますか?
このようにサービスを開始します。
Intent ir=new Intent(this, Service.class);
ir.putExtra("data", data);
this.startService(ir);
インテントエクストラとしてデータを添付します。
次に、サービスからデータを取得します。
data=(String) intent.getExtras().get("data");
したがって、onHandleIntentまたはonStartCommand Intentパラメータのいずれかからパラメータにアクセスできます。 (実行しているサービスの種類によって異なります)たとえば、
サービス
protected void onStartCommand (Intent intent, int flags, int startId) {
data=(String) intent.getExtras().get("data");
}
public int onStartCommand(インテントインテント、intフラグ、int startId)
IntentService
protected void onHandleIntent(Intent intent) {
data=(String) intent.getExtras().get("data");
}
インテント(データを持つ)でサービスを開始すると、そのインテントはメソッドで受け取られますonStart(Intent intent, int startId)
または
onStartCommand (Intent intent, int flags, int startId)
{
this **intent** is your intent with data
}
サービスの。したがって、パラメータとして意図を持つこのメソッドからデータを受け取る