-1

いくつかの 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);
        }
    };
}

これは正しい方法ですか?

4

1 に答える 1

0

これは正しい方法ですか?

いいえ。ユーザーに積極的に価値を提供している場合にのみ、サービスを実行してください。時計の刻みを監視することは、積極的にユーザーに価値を提供していません。AlarmManagerこのような定期的な作業に使用します。

于 2014-09-01T13:32:31.473 に答える