Android でバックグラウンド サービスを実行するために IntentService クラスを拡張しています。起動後すぐにサービスが開始されます。このサービスから定期的にユーザー入力ボックスをポップアップ表示したい。そのため、サービスからアクティビティを呼び出してみましたが、役に立ちません。Force Close の恐ろしいボックスが表示され、サービスが終了します。バックグラウンド サービスからアクティビティを呼び出す方法を提案できる人はいますか?
ありがとう!
Android でバックグラウンド サービスを実行するために IntentService クラスを拡張しています。起動後すぐにサービスが開始されます。このサービスから定期的にユーザー入力ボックスをポップアップ表示したい。そのため、サービスからアクティビティを呼び出してみましたが、役に立ちません。Force Close の恐ろしいボックスが表示され、サービスが終了します。バックグラウンド サービスからアクティビティを呼び出す方法を提案できる人はいますか?
ありがとう!
このサービスから定期的にユーザー入力ボックスをポップアップしたい。
この計画を再考してください。を使用しNotification
ます。あなたのユーザーはあなたに感謝します。
編集:明確にするために、私はあなたがフォアグラウンドであなたのいくつかの活動なしで非同期的に「ユーザー入力ボックスをポップアップする」ことを探していると仮定しています。もしそうなら、それは素晴らしいUIパターンではありません-たとえば、テキストメッセージを入力している最中にアクティビティがポップアップすると、ユーザーは簡単にイライラする可能性があります。
そこで、サービスからアクティビティを呼び出してみましたが、役に立ちません。Force Closeの恐ろしいボックスが表示され、サービスが停止します。
startActivity()
必ずUIスレッドから呼び出してください。それでも問題が解決しない場合は、forlorneyが提案したように、LogCat adb logcat
、DDMS、またはEclipseのDDMSパースペクティブをチェックして、例外のJavaスタックトレースを取得します。
これは答えに直接関係するものではありません (commonsware.com は、それを解決する方法の概要を既に説明しています)。サービスは、無期限に停止するのではなく、AlarmManager を使用して自分自身を起動します。基本的には、Service を起動し、PendingIntent を作成して自分自身を呼び出し、必要に応じて自分自身を起こします。