2013-03-16 62 views
0

我有這個代碼裏面的服務。但調度程序不啓動!這有什麼不對?我想這項服務顯示舉杯每三秒鐘,即使應用程序在後臺...安卓調度程序不啓動

public class notifService extends Service { 
private final ScheduledExecutorService scheduler =Executors.newScheduledThreadPool(1); 


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

@Override 
public void onStart(Intent intent, int startId) { 
    super.onStart(intent, startId); 
    final Intent intent1 = new Intent(this, notifService.class); 


    scheduler.scheduleWithFixedDelay(new Runnable() { 
     @Override 
     public void run() { 
      Toast.makeText(getApplicationContext(),String.valueOf("a"), Toast.LENGTH_LONG).show(); 

     } 
    }, 3, 3, SECONDS); 
} 

@Override 
public void onDestroy() { 
    super.onDestroy(); 
} 

回答

0

首先,該onStart(Intent,int)方法已爲服務對象。

而應該是壓倒一切的

onStartCommand(Intent intent, int flags, int startId),然後返回START_STICKY。這將確保您的服務在被操作系統殺死時重新啓動。其次,您應該將服務的上下文傳遞給吐司構建器(您可以使用關鍵字this)。

最後,我不確定你的意圖是什麼,但這很可能總是顯示敬酒,因爲你正在用Toast.LENGTH_LONG常量來構建它。

如果仍然沒有工作,張貼您正在使用啓動服務的代碼......你知道,此代碼的工作

+0

,但我改變了一些東西,現在不工作!但我不知道錯在哪裏! – Fcoder 2013-03-16 19:47:33

+0

那麼你應該仍然沒有使用onStart()方法..它已被棄用了很長時間..然後你改變了什麼? – Joel 2013-03-16 19:48:35

+0

我不知道我改變了什麼,但是我的代碼在幾分鐘前完美運行......你能給我一個完整的例子嗎?請:) – Fcoder 2013-03-16 19:55:23