これが状況です。サービスを開始するAndroidアクティビティがあります(サービスはファイルの送受信などを目的としています)。サービスsendMessage()は、Activityクラスオブジェクトで作成されたハンドラーを介してActivityに送信されます。次に、アクティビティには、サービスが含むビューで実行している現在のアクションのステータスが表示されます。
ここに問題があります
- 活動開始
- アクティビティがグローバルオブジェクトにハンドラーを作成しました
- アクティビティがサービスを開始します-
- アクティビティを介したユーザーは、ファイルの送受信プロセスを開始するようにサービスに命令します
- サービスは現在ビジーであり、グローバルオブジェクトを介して取得したハンドラーを介してUIにメッセージを送信しています
- アクティビティはMessage()を受信して処理し、UIで状態を公開します
- ユーザーは私のアクティビティをバックグラウンドに送信します(別のアプリを使い始めた可能性があります)
- このプロセス中に、Androidはおそらく私のアクティビティを強制終了しますが、サービスはビジー/実行中です
- その間にサービスが終了します
- しばらくすると、ユーザーはアクティビティを開きます。
- (問題)アクティビティがonCreateで開始されると、アクティビティはサービスの最後のステータスを認識していません。正常に終了したか、失敗したか、またはその他のステータスが最後のステータスであるかどうか。