30/09/2018, 19:23
[ Android] Làm sao để sleep một Service
em có đề bài là có một button khi click thì sẽ tạo một service và cứ 5s thì hiện Toast là " sleep 5s" . Em dùng
new Thread( new Runnable({
@Overide
public void run(){
Thread.sleep(5000);
Toast.makeText(getBaseContext(),“sleep 5s”,Toast.LENGTH_LONG).show();
}
})).start();
trong hàm onCommand nhưng nó cũng ko hiện toast và không sleep
Bài liên quan
bạn đã start service đó lên chưa ?
rồi ạ
/////////////////////
Android có một thread chính gọi là UI thread (hoặc là Main thread) chịu trách nhiệm trong việc thay đổi giao diện, tức là nếu bạn muốn có một thay đổi nào đó trong giao diện (hiện Toast chẳng hạn) thì bạn chỉ được làm trong UI thread.
Về đoạn code của bạn thì bạn đang muốn tạo Toast trong một thread khác nên đó là lý do Toast không hiện. Mình khuyên bạn nên dùng ASyncTask để thực hiện việc này thay vì Thread, bạn có thể google tại sao lại dùng ASyncTask thay vì Thread nhé
Bạn tham khảo thêm ở đây:
http://developer.android.com/intl/vi/reference/android/os/AsyncTask.html
Override lại
onProgressUpdate(Progress...)
để hiện Toast mà bạn muốn nhéCó nhiều cách.
v.v…