0

わかりましたので、私が見つけることができるすべてを試しましたが、うまくいきません。これが私のコードです。レシーバーを呼び出さない理由を誰か教えてもらえますか?

AndroidManifest.xml

...
<receiver android:name=".AlarmReciever" />
...

AlarmReceiver.java

public class AlarmReciever extends BroadcastReceiver 
{

    private static final Logger LOGGER = Logger.getLogger(LogService.class);

      @Override
      public void onReceive(Context context, Intent intent) 
      {

         LOGGER.debug("BroadcastReceiver, in onReceive:");

      }
}

DeviceMonitor.java

public class DeviceMonitor extends Service 
{
    public int onStartCommand(Intent intent, int flags, int startld) 
    {

        LOGGER.debug("alarmmanger settting from on start");

        AlarmManager alarmMgr = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
        Intent I = new Intent(this, AlarmReciever.class);
        PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, I, 0);
        Calendar time = Calendar.getInstance();
        time.setTimeInMillis(System.currentTimeMillis());
        time.add(Calendar.SECOND, 5);
        alarmMgr.set(AlarmManager.RTC_WAKEUP, time.getTimeInMillis(), pendingIntent);

        LOGGER.debug("alarmmanger set from on start");
    }
}
4

3 に答える 3

0

AndroidのメインフェストファイルのAlarmReceiver代わりに使用すると機能すると思います。.AlarmReceiver

于 2013-08-26T19:48:52.263 に答える
0

XMLドキュメントで完全修飾パス名を使用することで問題を解決したようです

<receiver
    android:name="com.realityi.measy.mdm.logs.AlarmReciever"
    android:enabled="true"
    android:exported="true">
</receiver>

そして、私はそれを使用してトラブルシューティングすることができました

Intent i = new Intent();
i.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
sendBroadcast(i);

放送の送信を強制した

これが誰かを望んでいることを本当に願っています。私は Android 開発に不慣れで、これは私を殺していました。

于 2013-08-26T19:40:02.137 に答える