Oluşturduğum bir hizmette bir zamanlayıcı çalıştırırken sorun yaşıyorum. Zamanlayıcının aradığı görev çağrılmaz. Servisin içinde tostlar koyduğumdan başladığını biliyorum ve onlar çağrılır, ancak zamanlayıcı içinde olduklarında değil. Yardım aldım.Android Bir hizmet içinde Zamanlayıcı
hizmet sınıfı:
public class LocalService extends Service
{
private static Timer timer = new Timer();
private Context ctx;
public IBinder onBind(Intent arg0)
{
return null;
}
public void onCreate()
{
super.onCreate();
ctx = this;
startService();
}
private void startService()
{
timer.scheduleAtFixedRate(new mainTask(), 0, 5000);
}
private class mainTask extends TimerTask
{
public void run()
{
Toast.makeText(ctx, "test", Toast.LENGTH_SHORT).show();
}
}
public void onDestroy()
{
super.onDestroy();
Toast.makeText(this, "Service Stopped ...", Toast.LENGTH_SHORT).show();
}
}
Ana sınıfı:
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
startService(new Intent(RingerSchedule.this, LocalService.class));
}
Teşekkür:
Bir Handler ve şöyle boş bir mesajı kullanabilirsiniz UI iş parçacığı üzerinde Tost oluşturmak için çalıştı. – WoodyTam olarak doğru cevap. – Nakedible
Bu cevabı uzun zamandır arıyordum. – santBart