0

ネット検索で以下のサンプルを取ります。いくつかの変更を加えてサンプルを実装しましたが、電話を再起動するとエラーが表示されます。サンプルで使用したソースコードも貼り付けていますので、問題解決にご協力ください

前もって感謝します

xmlファイル

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.newtest"
android:versionCode="1"
android:versionName="1.0">

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>  
<application>  
    <receiver android:name=".BootCompletedIntentReceiver">  
        <intent-filter>  
            <action android:name="android.intent.action.BOOT_COMPLETED" />  
        </intent-filter>  
    </receiver>  
    <service android:name=".BackgroundService"/>  
</application>
</manifest>

放送受信機クラス

package com.example.newtets;

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

public class BootCompletedIntentReceiver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
    if ("android.intent.action.BOOT_COMPLETED".equals(intent.getAction())) {  
           Intent pushIntent = new Intent(context, BackgroundService.class);
           context.startService(pushIntent);  
    }
}
}

サービスクラス

package com.example.newtets;

import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.widget.Toast;

public class BackgroundService extends Service {

@Override
public IBinder onBind(Intent intent) {
    // TODO Auto-generated method stub
    return null;
}

@Override
public void onCreate() {
    Toast.makeText(this, "OK", Toast.LENGTH_LONG).show();
    super.onCreate();
}

}
4

1 に答える 1

0

I dont think you need to compare the intent..

if ("android.intent.action.BOOT_COMPLETED".equals(intent.getAction())) {  
 .....
}

as, it is captured in the xml file that BootCompletedIntentReceiver should be executed for BOOT_COMPLETED intent.

于 2014-01-03T05:32:11.743 に答える