いくつかの Web APIをチェックして、x 分ごとに何かを実行したいと考えています。Android でサービスを作成する必要があると思います (他に解決策はありますか?)。
しかし、どうすればそれができますか?
サービス クラスを作成することを考えています。マニフェスト ファイルに次の行を追加する必要があります。
<service
android:name="com.xx.yy.noti_check"
android:enabled="true"
>
</service>
私の noti_check クラスでは、 onStartCommand で次のように Web API をチェックします。
public class noti_check extends Service {
Context mcont;
private Handler myhandler ;
private long RETRY_TIME = 15000;
private long START_TIME = 2000;
@Override
public IBinder onBind(Intent intent) {
// TODO: Return the communication channel to the service.
throw new UnsupportedOperationException("Not yet implemented");
}
@Override
public void onStart(Intent intent, int startId) {
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
mcont=this;
myhandler= new Handler();
myhandler.postDelayed(myRunnable, START_TIME);
return Service.START_STICKY;
}
@Override
public void onDestroy() {
super.onDestroy();
try {
myhandler.removeCallbacks(myRunnable);
}
catch (Exception e) {
// TODO: handle exception
}
}
private Runnable myRunnable = new Runnable() {
public void run() {
try {
new get_notifyalert(mcont).execute("") ;
}
catch (Exception e) {
// TODO: handle exception
}
myhandler.postDelayed(myRunnable, RETRY_TIME);
}
};
}
これは正しい方法ですか?