1

私の活動では:

Intent myIntent = new Intent(this, MyAlarmService.class);
pendingIntent = PendingIntent.getService(this, 0, myIntent, 0);

AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);

Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.SECOND, 10);
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);

Toast.makeText(this, "Start Alarm", Toast.LENGTH_LONG).show();

呼び出されるクラス:

public class MyAlarmService extends Service {

    @Override
    public void onCreate() {
        // TODO Auto-generated method stub
        Toast.makeText(this, "MyAlarmService.onCreate()", Toast.LENGTH_LONG).show();
    }

    @Override
    public IBinder onBind(Intent intent) {
        // TODO Auto-generated method stub
        Toast.makeText(this, "MyAlarmService.onBind()", Toast.LENGTH_LONG).show();
        return null;
    }

    @Override
    public void onStart(Intent intent, int startId) {
        // TODO Auto-generated method stub
        super.onStart(intent, startId);
        Toast.makeText(this, "MyAlarmService.onStart()", Toast.LENGTH_LONG).show();
    }
}

このコードでは、MyAlarmService は呼び出されていません。なんで?このコードはサンプルから削除されたため、テスト済みで正しく機能しています。私は何かを忘れているでしょうか?

4

2 に答える 2

1

あなたのサービスはきちんと始まっていると思います。使用中のトーストに問題があります。

に変更Toast.makeText()してLog.d()、Logcatにレコードが表示されるかどうかを確認してください。

トーストの使用に関する問題は、ここで説明されています。

于 2012-06-04T15:13:44.607 に答える
0

それは正しいようです。コードでこの例も試してみましたが、うまくいきました。

問題はマニフェストにあると思います。次のように、プロジェクトのマニフェストでサービスを宣言する必要があります。

< service android:name=".MyAlarmService" />
于 2012-06-25T18:15:46.693 に答える