broadcastReceiverがブートメッセージを受信し、alarmmanagerを設定します。
DELAY分ごとにサービスを開始します。
Intent intent = new Intent();
intent.setAction("org.jxdwinter.getMessageServcie");
PendingIntent pendingintent = PendingIntent.getService(arg0, 0, intent, 0);
am = (AlarmManager) arg0.getSystemService(Context.ALARM_SERVICE);
am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), DELAY, pendingintent);
新しいスレッドのromateサーバーからのサービスポーリングデータ:
public int onStartCommand(Intent intent, int flags, int startId)
{
this.getMessage.start();
return Service.START_NOT_STICKY;
}
private class GetMessage extends Thread
{
public void run()
{
... ....
}
}
そして、アプリが起動したとき、私は非常に最初にデータを取得することができ、エラーはありません。
その後、サービスはDELAY minsで再開され、エラーが発生します:スレッドはすでに開始されています。
なぜ起こったのですか?plsはこれで私を助けます。ありがとうございました!