0


1

Androidタイマー設定遅延

Androidアプリにタイマーを使用するサービスクラスがあります。 タイマーは、1分(60000ms)の遅延で実行するように設定されています。 ユーザーがこの遅延を動的に変更できるようにします。 通常、javaでは、timer.setDelay()を使用できます。ただし、Androidにはこの機能はありません。

これまでのサービスクラス:

public class LocalService extends Service
{
    Timer timer = new Timer();
    int newDelay;

    public IBinder onBind(Intent arg0)
    {
        return null;
    }

    public void onCreate()
    {
        super.onCreate();
        startService();
    }

    private void startService()
    {
        timer.scheduleAtFixedRate(new TimerTask()
        {
            public void run()
            {
                mainTask();
            }
        }, 0, 60000);
    }

    private void mainTask()
    {
        //do something
    }

    private void shutdownService()
    {
        if (timer != null) timer.cancel();
    }

    public void onDestroy()
    {
        super.onDestroy();
        shutdownService();
    }

    private void readNewDelay()
    {
        InputStream in = openFileInput("updateDelay");
        if(in != null)
        {
            InputStreamReader input = new InputStreamReader(in);
            BufferedReader buffreader = new BufferedReader(input);
            newDelay = Integer.parseInt(buffreader.readLine()) * 60000; //value in file is saved in minutes
        }
        in.close();
    }
}

必要な遅延は、アクティビティによってテキストファイルに保存されます。 次に、サービスでこのファイルを読み取り、それに応じてタイマー遅延を更新する必要があります。

1 Answer