Ошибка «Невозможно запустить службу намерение» при запуске службы из активности в Android - PullRequest
8 голосов
/ 31 декабря 2010

Я вижу следующую ошибку в DDMS при попытке использовать действие CheckBox на MyActivity "для запуска службы под названием" MyService ":

W/ActivityManager(   73): Unable to start service Intent { cmp=com.example.android.myprogram/.MyService }: not found

Я использовал учебник http://developer.android.com/resources/tutorials/views/hello-formstuff.html и добавил предоставленный код в конец моего метода onCreate (). У меня есть классы, указанные отдельно в MyActivity.java и MyService.java.

package com.example.android.myprogram;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.CheckBox;


public class MyActivity extends Activity {
    private static final String TAG = "MyActivity";

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        final CheckBox checkbox = (CheckBox) findViewById(R.id.checkbox);
        checkbox.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                // Perform action on clicks, depending on whether it's now checked
                if (((CheckBox) v).isChecked()) {
                    // TODO: Add code to START the service
                    Log.d(TAG, "startService from checkbox");     
                    startService(new Intent(MyActivity.this, MyService.class));
                } else {
                    // TODO: Add code to STOP the service
                    Log.d(TAG, "stopService from checkbox");     
                    stopService(new Intent(MyActivity.this, MyService.class));
                }
            }
        });
    }
}

В моем файле манифеста есть следующее, в котором я также опробовал полное пространство имен, короткое имя, используя фильтр намерений для другого поиска и т. Д. Я не говорю, что здесь правильно. Я просто оставил его на остановке.

<service android:name=".MyService">
   <intent-filter><action android:name="com.example.android.myprogram.MyService"></action>
   </intent-filter>
</service>

И, наконец, мой сервис, который я решил сократить до минимума:

package com.example.android.myprogram;


import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.util.Log;

public class MyService extends Service {
    private static final String TAG = "MyService";

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

    @Override
    public void onCreate() {
        Log.d(TAG, "onCreate");
        //code to execute when the service is first created
    }

    @Override
    public void onDestroy() {
        Log.d(TAG, "onDestroy");
        //code to execute when the service is shutting down
    }

    @Override
    public void onStart(Intent intent, int startid) {
        Log.d(TAG, "onStart");
        //code to execute when the service is starting up
    }
}

Я очень, очень, очень плохо знаком с программированием на Java / Android и программированием в целом (но учусь), поэтому я уверен, что это ошибка пользователя и, вероятно, здравый смысл для всех остальных. Любые предложения будут великолепны.

Ответы [ 4 ]

17 голосов
/ 31 декабря 2010

Я продолжал копаться и, как я понял, я делал очевидную ошибку новичка.В AndroidManifest.xml у меня было после вместо вложенного в него.

0 голосов
/ 17 февраля 2012

очистить строку в файле manifest.xml

      <intent-filter>
             <action android:name="com.example.android.myprogram.MyService"> 
            </action>
        </intent-filter>
0 голосов
0 голосов
/ 31 декабря 2010

Вам не нужно писать фильтр намерений, потому что вы запускаете сервис явно. Если вы новичок в Android, используйте следующую ссылку, это будет очень полезно для вас. У него тоже есть сервисный пример. http://saigeethamn.blogspot.com/2009/08/android-developers-tutorial-for.html

...