0

5秒ごとに画面にタグを付けるサービスを作りました(これがこれの名前だと思います)。起動するとき、タグを画面に表示する必要がありますが、彼はアプリがクラッシュしたと言っています。なんで?コード: Android マニフェスト:

    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
    <receiver android:name="com.YuvalFatal.MyBroadcastReceiver" >
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
        </intent-filter>
    </receiver>
    <service android:enabled="true" android:name="com.YuvalFatal.MyService"/>

ブロードキャストレシーバー:

  package com.YuvalFatal.ineedhelp;

import java.util.Timer;
import java.util.TimerTask;

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

public class MyBroadcastreceiver extends BroadcastReceiver {

@Override
public void onReceive(final Context arg0, Intent arg1) {
    Timer timer = new Timer();
    timer.schedule(new TimerTask() {
        public void run() {
            Intent startServiceIntent = new Intent(arg0, MyService.class);
            arg0.startService(startServiceIntent);
        }
    }, 0, 5000);
}
}  

インテントサービス:

package com.YuvalFatal.ineedhelp;

import android.app.IntentService;
import android.content.Intent;
import android.util.Log;


public class MyService extends IntentService {

private static final String TAG = "com.YuvalFatal.ineedhelp";

public MyService(String name) {
    super(name);
    // TODO Auto-generated constructor stub
}

@Override
protected void onHandleIntent(Intent intent) {
    // TODO Auto-generated method stub
    Log.i(TAG, "Intent Service started");
}

}
4

1 に答える 1

3

私は(そう、私は魔術師であり、素晴らしい直感を持っています:) Service コンストラクターはデフォルトでなければならないと思います:

public class MyService extends IntentService {
    ...

    public MyService() { // Default constructor! Without params!
        super("MyService"); // Or another string
    }

...
}

他のコードは正常に見えます

于 2013-02-06T22:27:15.147 に答える