2012-05-02 8 views
0

を使用して、アクティビティからサービスを開始することができませんでし:すべてのチュートリアルはこれを行うために私に教えSTARTSERVICE

startService(new Intent(this, MyService.class)); 

をが、活動を取るコンストラクタがありません、クラスと私は

http://developer.android.com/reference/android/content/Intent.html

構文エラーを取得

このようにサービスを開始しようとしています。

startService(new Intent(getApplicationContext(), MyService.class)); 

しかし、私のサービスは決して実行されません。

public class MyService extends IntentService {                                          

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

    @Override                                                   
    protected void onHandleIntent(Intent intent) {                                          
     //do stuff                                                  
    }                                                     

} 

サービスを起動するにはどうすればよいですか?

ANSWER:私のアンドロイドマニフェストのdidntのspecifcyパッケージ(コメントに見られるような)

答えて

2

実際の問題は、ここに追加:

サービスが別のパッケージにあった、それは完全でなければならマニフェストのように、修飾された、例えば<service android:name="actual.package.of.MyService"/>

旧回答:

  1. あなたは内部クラスでサービスを起動しようとした場合、あなたが書くべきではありません。

    startService(new Intent(this, MyService.class)); 
    

    しかし:

    startService(new Intent(ActivityName.this, MyService.class)); 
    
  2. あなたのサービスが現れます。

  3. onHandleIntentの内部にデバッグプリントを追加して起動するかどうかを確認します。
+0

... :私のマニフェストの<サービスアンドロイド名=「MYSERVICE」/> 、そして今私はそれを始めています2行目を使って、startServiceが呼び出される前の行を知っていますが、私はそれを記録していますが、intentHandler内の何も – tipu

+0

と呼びます。アクティビティはContextのサブクラスなので、#2マニフェストOK、#3あなたはonHandleIntentに何かを印刷しようとしましたか? – MByD

+0

onHandleIntentの最初の行は、実行されたかどうかを調べるログコマンドです。 – tipu

0

サービスは、おそらくあなたがマニフェストファイルでサービスを宣言していない

見え何かではありません。

コードに問題があるとは思われません。 logcat onstartCommandとのOnCreateメソッドをオーバーライドして、単にログ文を入れてチェック

関連する問題