Alarm Manager
でウィジェットを更新するために を使用していますService
。2 つの異なる質問があります。
最初の質問: アラーム マネージャーの意図でサービスを呼び出しています。このような:
alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent i = new Intent(context, MyService.class);
pi = PendingIntent.getService(context, 0, i, PendingIntent.FLAG_UPDATE_CURRENT);
context.startService(new Intent(context, MyService.class));
Long repeat = Long.parseLong(prefs.getString("update_preference", "600"));
alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, Calendar.getInstance().getTimeInMillis(), 1000*repeat, pi);
違いますか?
それは正しく見え、正しく機能します。しかし、稼働中のサービスを見てみると、自分のサービス名がリストに表示されません。おそらく、単一/個別のサービスとして実行されていません。アプリケーション名を見ただけです(サービスとしてではありません)。分離する方法がわかりませんか、それとも問題ですか?
別の質問: 長い間、ウィジェットの更新を制御する実行中のアプリケーションが何らかの理由で (手動またはタスク キラーによって)閉じられています。もちろんAlarm Manager
停止しますし、ウィジェットの機能も停止します。たとえば、ボタンのクリック。
しかし、Twitterはこの問題を解決しました。ウィジェットがアクティブなときに、ウィジェットをクリックするよりもウィジェットを制御するメインアプリケーション (Twitter) を閉じると、どういうわけかウィジェットがアプリケーションをトリガーし、正常に再起動します。したがって、ボタンは正常に機能します。そんなことがあるものか?
どんな助けでも大歓迎です。