为什么我的服务没有运行? (通过显示Toast消息判断。)

时间:2011-07-26 00:36:20

标签: android service toast

我正在尝试在后台创建一个服务,所以我可以运行一个每x分钟请求一个页面的循环。这是我在清单中的服务:

<service android:name=".webToSMS" android:enabled="true" />

这是我的服务正在启动(在主要活动中):

Intent intent = new Intent(this, webToSMS.class);
startService(intent);

最后,这是我的服务类:

public class webToSMS extends IntentService {

  public webToSMS() {
      super("webToSMS");
  }

  @Override
  protected void onHandleIntent(Intent intent) {
      Context context = getApplicationContext();
      CharSequence text = "Hello toast!";
      int duration = Toast.LENGTH_SHORT;

      Toast toast = Toast.makeText(context, text, duration);
      toast.show();
  }
}

我正在关注Android的指南,这就是它告诉我要做的事情。我所期待的是一个祝酒词:“你好吐司!”何时运行此服务。最终,当这个工作时,我将放置一个循环,每隔x分钟就会请求一个页面。

1 个答案:

答案 0 :(得分:4)

您的服务正在运行,它只是不显示toast,因为您不在UI线程上。

如果您想看吐司,请尝试使用

Handler HN = new Handler(); 


private class DisplayToast implements Runnable {

  String TM = "";

      public DisplayToast(String toast){
          TM = toast; 
      }

      public void run(){
         Toast.makeText(getApplicationContext(), TM, Toast.LENGTH_SHORT).show();
      }
}

@Override
protected void onHandleIntent(Intent intent) {

   HN.post(new DisplayToast("New Toast on UI Thread")); 
}