2016-12-15 3 views
0

定期的なサービスを作成しようとしています。私のモバイルに保存されている特定の値をAPIサーバー上のデータで検証できます。ユーザーのパスワードが変更された場合、またはユーザーが削除された場合、APIサーバーはユーザーにログアウトする必要があることをモバイルアプリに知らせるために応答を返送する必要があります。要求/応答は問題ではありません。定期的にサービスを受けるのに問題がある。Androidで定期的なサービスを作成する

MyService.class:別のランダムクラスの内部のonCreate

public class MyService extends IntentService { 

    private static final String TAG = "MyService"; 


    public MyService() { 
     super("MyService"); 
    } 

    @Override 
    protected void onHandleIntent(Intent intent) { 
     // Normally we would do some work here, like download a file. 
     // For our sample, we just sleep for 5 seconds. 
     try { 
      Thread.sleep(5000); 
      Log.d(TAG,"loop service"); 
     } catch (InterruptedException e) { 
      // Restore interrupt status. 
      Thread.currentThread().interrupt(); 
     } 
    } 

    @Override 
    public int onStartCommand(Intent intent, int flags, int startId) { 
     Toast.makeText(this, "service starting", Toast.LENGTH_SHORT).show(); 
     return super.onStartCommand(intent, flags, startId); 
    } 
} 

Context mContext = getApplicationContext(); 
Intent i= new Intent(mContext, MyService.class); 
i.putExtra("KEY1", "Value to be used by the service"); 
mContext.startService(i); 

サービスが開始しない(それは私Log.dが表示されます)、どのように私はここから続けますそれを再開させるか、一定の時間後に起動させるか?

答えて

1

最初のもの:IntentServiceは、メインスレッド以外のタスクのキューを実行するように設計されています。したがって、更新を確認するたびに新しいものを作成する必要があります。それはAlarm Manager

ですが、必ずしもこれを実行する最良の方法ではありません。サーバーの変更をポーリングする代わりに、push notificationsの方法を試してみてください。

関連する問題