проблема обслуживания Android - PullRequest
0 голосов
/ 19 июля 2011

У меня проблема с простым обслуживанием.служба должна запускаться "автоматически", так как я уже знаю, завершена ли загрузка.Я нашел простой пример, и мой код такой же, но он не работает, в журнале ничего нет.вот пример [Запуск службы при загрузке] [1]

package com.service;

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

public class MainService extends Service
{
    public IBinder onBind(Intent intent)
    {
        return null;
    }

    @Override
    public void onCreate()
    {
        Log.v("StartServiceAtBoot", "StartAtBootService Created");
    }

    @Override
    public void onStart(Intent intent, int startId)
    {
        Log.v("StartServiceAtBoot", "StartAtBootService -- onStart()");
    }

    @Override
    public void onDestroy()
    {
        Log.v("StartServiceAtBoot", "StartAtBootService Destroyed");
    }

}


  [1]: http://www.androidcompetencycenter.com/2009/06/start-service-at-boot/

здесь получатель braodcast для завершенного при загрузке действия:

package com.service;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;

public class MainServiceReceiver extends BroadcastReceiver
{
    @Override
    public void onReceive(Context context, Intent intent)
    {
        if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED))
        {
            Log.i("Test", "Test");
            Intent i = new Intent();
            i.setAction("com.service.MainService");
            context.startService(i);
        }
    }
}

и вот файл манифеста:

     <?xml version="1.0" encoding="utf-8"?>
     <manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.service"
      android:versionCode="1"
      android:versionName="1.0">
    <uses-sdk android:minSdkVersion="7" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-        permission>

    <application android:icon="@drawable/icon" android:label="@string/app_name">

        <service android:name="com.service.MainService">
            <intent-filter>
                    <action  android:name="android.action.intent.BOOT_COMPLETED">   
            </action>
        </intent-filter>
    </service>

<receiver android:name="com.service.MainServiceReceiver">
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED">
        </action>
        <category android:name="android.intent.category.HOME">
        </category>
    </intent-filter>
</receiver>

</application>

в журнале ошибок андроида всегда есть эта ошибка:

9009 Приемник изменения приложений: update1 application packageName = com.service ....

Пожалуйста, помогите мне, я думаю, что это мелочь, но я не вижу ошибки.

Спасибо

Ответы [ 2 ]

0 голосов
/ 19 июля 2011

Вам требуется только startSerice по вызову: startService (new Intent (MainServiceReceiver .this, MainService.class));Если у вас есть какие-либо проблемы, пожалуйста, добавьте мой Yahoo или Skype: fsoft_duonghv

0 голосов
/ 19 июля 2011

В вашем коде: Intent i = new Intent ();i.setAction ( "com.service.MainService");context.startService (я);Но в декларации вы не объявили намеренный фильтр для получения этого действия.

...