بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
استفاده از تایمر در سرویس
سلام به همه ی دوستان و اساتید
بنده میخواستم بدونم با چه متدی میتونم یه تایمری رو در سرویس به اجرا بزارم
مثلا هر 1 ثانیه یکبار یک کار خاصی رو انجام بده
البته متد زیر رو هم استفاده کردم اما توی سرویس اجرا نمیشه خطا میگیره از runOnUiThread
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(MainActivity.this, ai +"", Toast.LENGTH_SHORT).show();
ai++;
// task to be done every 1000 milliseconds
}
});
}
}, 0, 5000);
0
0
سورس کد کامل سرویس
package ir.tegrasoft.servicetimer;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.widget.Toast;
import java.util.Timer;
import java.util.TimerTask;
/**
* Created by Hero_Cloner on 20/01/2016.
*/
public class ServiceTimer extends Service {
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(ServiceTimer.this, ai +"", Toast.LENGTH_SHORT).show();
ai++;
لینک task to be done every 1000 milliseconds
}
});
}
}, 0, 5000);
return Service.START_FLAG_REDELIVERY;
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
(10 سال پیش)
برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال
محمد رضا
10 سال پیش
0
0
سورس کامل سرویس
package ir.tegrasoft.servicetimer;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.widget.Toast;
import java.util.Timer;
import java.util.TimerTask;
/**
* Created by Hero_Cloner on 20/01/2016.
*/
public class ServiceTimer extends Service {
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(ServiceTimer.this, ai +"", Toast.LENGTH_SHORT).show();
ai++;
// task to be done every 1000 milliseconds
}
});
}
}, 0, 5000);
return Service.START_FLAG_REDELIVERY;
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .