質問: PendingIntent.getActivity(serviceactivirt.this, 0, intent, 0); try { sender.send(); } catch (CanceledException e) { Toast.makeText(getApplicationContext(), "FEJLSAN", Toast.LENGTH_LONG).show(); } ``` これは実際には、起動時に私のアプリクラッシュが、スケジュールされた活動が動作している以外は動作します... 何か案は?これは「それを行う方法」ですか、それとももっとお勧めの方法ですか? 乾杯! 溶液: BroadcastRecieverがアクティビティを呼び出す代わりに、BroadcastRecieverがサービスを開始しました。そして私のアクティビティをプログラム的に、そして目立つようにサービスに変えました。 よく働く!
回答: > スケジュールされた活動を毎時間行ったり、バックグラウンドで作業したりしています。 > > フォアグラウンドを引き継ぐアクティビティによって中断されるのではなく、`通知`などの他のオプションをユーザーが設定できるようにしてください。 > 今は、デバイスが起動したときにピックアップするBroadcastReceiverがあります。 > > 毎時のイベントに対して `AlarmManager` スケジュールを設定する必要があります。 `AlarmManager` の `PendingIntent` は、 `getActivity()`で取得できます。 > これまでのところ、これはうまくいかないようです。 > > アクティビティを開始する場合は、 `startActivity()`を呼び出します。 `PendingIntent` を作成せずにすぐに `PendingIntent` を `send()`しないでください。 また、 `getApplicationContext()`を取り除き、単に `this` を使用します。 > 起動時にアプリがクラッシュする以外は > > Eclipseの `adb logcat` 、DDMS、またはDDMSパースペクティブを使用してLogCatを調べ、クラッシュに関連するスタックトレースを確認します。