2017-01-16 11 views
0

定期的に(約15分程度)定期的にJSONデータをサーバーからバックグラウンドでダウンロードして通知する必要があるアプリケーションを作成しています。アンドロイドで定期的にタスクを実行するにはどうすればいいですか?

私はアンドロイドコーディングで多くの経験がありません。私はこれを正しく、そして最良のコーディング方法でどうやってやるべきか尋ねています。

あまり精度は必要ありませんが、不完全な繰り返しのAlarmManagerは完全に機能するはずです。 BroadcastReceiverを使ってBOOT_COMPLETEを受信し、サービスを開始する方法を知っています。しかし、私はどのようにサービスで特定のアクションを実行するためにAlarmManagerを設定でき、私はそうしなければならないのか分かりません。私は提供されていない方法でアンドロイドのメカニズムを使いたくない。

+1

では、すでに正しい軌道に乗っているように、https://guides.codepath.com/android/Starting-Background-Services#using-withを見てみてくださいね-alarmmanager-for-periodic-tasks – hibob

+0

@hibobありがとうございます。それがまさに私が必要なものです。 – darkanzali

答えて

0

サーバーから情報を取得するのにAsyncTaskを使用してください。レシーバクラスのonReceive方法で新しいAsyncTaskオブジェクトを作成し、以下のようにそれを実行します。

private class GetContent extends AsyncTask<String,Void,String> // Assume class name 
extras = extras.getString("json"); 
GetContent().execute(extras); 

をAsyncTask doInBackgroundのデフォルトの機能では、データをretriveとJSONを返します。その他のデフォルト機能onPostExecuteでは、NotificationCompat.Builderオブジェクトを作成し、通知します。

0

は、クラスTimerTaskをを使用します。

private TimerTask timerTask; 
private final long PERIOD_TIME=1000 * 60 * 15; //15min 

@Override 
public void onCreate() { 

Timer timer = new Timer(); 

timerTask = new TimerTask() { 
    @Override 
    public void run() { 
    //Your request JSON 
    } 
    }; 

    timer.scheduleAtFixedRate(timerTask, 0, PERIOD_TIME); 
} 
関連する問題