2013-03-16 61 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