ボタンを使ったアクティビティがあります。そのボタンを押すと、10 分ごとにメソッドが呼び出されます。
Handler
aと aを使用してそうしようとしていTimer
ます。しかし、結果を得ることができませんでした。
ボタンを使ったアクティビティがあります。そのボタンを押すと、10 分ごとにメソッドが呼び出されます。
Handler
aと aを使用してそうしようとしていTimer
ます。しかし、結果を得ることができませんでした。
Timer
オブジェクトを作成し、TimerTask
実行したいコードを実行するオブジェクトを指定します。
Timer timer = new Timer ();
TimerTask hourlyTask = new TimerTask () {
@Override
public void run () {
// your code here...
}
};
// schedule the task to run starting now and then every hour...
timer.schedule (hourlyTask, 0l, 1000*60*60); // 1000*10*60 every 10 minut
Timerオブジェクトを使用する利点は、それぞれが独自のタイミングや遅延などを持つ複数のTimerTaskオブジェクトを処理できることです。Timerオブジェクトをクラスとして宣言することで、Timerオブジェクトを保持している限り、タイマーを開始および停止することもできます。変数か何か。
次のコードを使用します。このコードでは、2番目のパラメーターとして指定したミリ秒数が経過するとnotifyme()が繰り返されます。
Timer timer = new Timer();
timer.schedule(new TimerTask()
{
public void run()
{
View v = new View(getApplicationContext());
notifyMe(v);
}},4000,100000);
}
アプリをバックグラウンドで実行する必要がない場合は、 AlamManagerを使用してください。それ以外の場合は、常に実行されているサービスとCountDownTimerを使用できます
Alarm Managerは、アプリケーションが現在実行されていない場合でも、特定の時間にアプリケーション コードを実行したい場合を対象としています。
通常のタイミング操作 (ティック、タイムアウトなど) では、Handler を使用する方が簡単で効率的です。
-使用する方がService
良いActivity
です View
。
- に限定または限定解除Service
できます。Activity
サービスの例については、次のリンクを参照してください。
http://www.vogella.com/articles/AndroidServices/article.html
-それでもスレッドを使いたい場合は、これを試してください...
1. Thread
(非 UI)が専用 UI スレッドにデータを投稿しない場合、Handler を使用する必要はありませんが、使用する場合は Handler が必須です。
例えば:
Handler h;
onCreate() {
h = new Handler();
new Thread(new Runnable() {
public void run(){
while(true){
try{
h.post(new Runnable(){
public void run(){
go();
}
}
TimeUnit.MINUTES.sleep(10);
}
catch(Exception ex){
}
}
}
}).start();
}
public void go(){
// This method is called every 10 minutes
}
Painless Threading
として知られているものを使用して、これと同じことを行いますAsyncTask
。