2011-07-26 8 views
1

バックグラウンドでサービスを作ろうとしているので、x分ごとにページを要求するループを実行できます。これはマニフェストで私のサービスです。サービスが実行されないのはなぜですか? (Toastメッセージを表示して判断した通り)

<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分ごとにページを要求するループを作成します。

答えて

3

あなたのサービスは稼働していますが、あなたは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")); 
} 
代わりにこれを試して見たい場合は
関連する問題