0

stackoverlow ユーザーのご厚意により、このコードを作成しました。指定した時間にトーストを開始する必要がありますが、実行されません。

誰かが問題の場所を発見するのを手伝ってくれますか? ありがとう!

public class UnUsedService extends Service {

private PendingIntent pendingIntent;

@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
Toast.makeText(this, "Service Created", Toast.LENGTH_LONG).show();

//startService(new Intent(this, UnUsedService.class));
}
@Override
public void onDestroy() {
super.onDestroy();
//Toast.makeText(this, "Service Destroyed", Toast.LENGTH_LONG).show();
}

@Override
public void onStart(Intent intent, int startId) {

//  super.onStart();
super.onStart(intent, startId);

Toast.makeText(this, "Service Started", Toast.LENGTH_LONG).show();

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


Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 22);
calendar.set(Calendar.MINUTE, 30);
calendar.set(Calendar.SECOND, 0);    AlarmManager am = (AlarmManager)     getApplicationContext().getSystemService  (Context.ALARM_SERVICE);
PendingIntent pi = PendingIntent.getService(getApplicationContext(), 0, new Intent(getApplicationContext(),     AlarmReceiver.class),      PendingIntent.FLAG_UPDATE_CURRENT);
am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),     AlarmManager.INTERVAL_DAY, pi);

}};

レシーバークラス

public class AlarmReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        Toast.makeText(context, "Alarm worked.", Toast.LENGTH_LONG).show();

    }
 }

マニフェスト:

<service android:name="UnUsedService">
        <intent-filter>
        <action
        android:name="org.gortcloud.startatboot.UnUsedService" />
        </intent-filter>
        </service>

<receiver android:name=".AlarmReceiver" android:process=":remote"/>
4

2 に答える 2

0

私はちょうど似たようなことに取り組んでいました。私のために働いたものreceiver android:name=".AlarmReceiver"と交換できますか。receiver android:name=".AlarmReceiver" android:process=":remote"

于 2012-12-13T17:54:05.963 に答える
0

わかりました...私はこれを機能させました。AndroidでAlarm Managerを使用してサービスを開始する方法をフォローしましたか? . 基本的に私pendingIntent.setBroadcast(..)BroadcastReceiverを必要とするを使用していましたが、今は使用していますpendingIntent.setService(...)

IntentService を拡張するクラスがあります (noarg コンストラクターを使用)。このサービスの開始をトリガーするアラームを正常に取得しています。私は and を持ってonStart()おりonStartCommand()onHandleIntent()それぞれが実行されます (私はあなたがそれらの1つだけを実装すると仮定します)

これがお役に立てば幸いです。

于 2012-12-14T15:42:09.610 に答える