APIレベル8のデバイスで実行中のアプリケーションA &が2つあるとします。Android ProgressDialogが別のアプリケーションの実行後に表示されなくなった
Aから、長時間実行されている解凍プロセスを開始するアクティビティを開始します(約4ギガバイト)。これの進行状況をProgressDialogに示します。
一方、手動アクションでは、アクションによってBが応答し、ProgressDialogでアクティビティを画面から離します(onStopが呼び出されます)。 私はいくつかのアクションを実行し、完了したらBのアクティビティを隠します。 Aのアクティビティが画面に表示されるようにします(onResumeが呼び出されます)。
しかし、長時間実行中のプロセスがまだ実行中であっても、ProgressDialogはなくなりました。 OnStopが呼び出された後に私のProgressDialogが消えてしまったのですが、なぜOnResumeに戻ってこないのですか?
おそらく、アクティビティのコンテキストが変更されているので、アクティビティのコンテキストで呼び出されたProgressDialogも同様に行っています。しかし、長時間実行されているプロセスはまだ実行中であり、正常に動作しているので、ProgressDialogの同じインスタンスも取得できるはずです。 しかし、.show()を呼び出すだけでは機能しません。
機能が1つのアプリケーション内でうまく機能していることに注意してください。 2つのアプリケーションがお互いに戦っているのは純粋に問題です。
これは、APIレベル8のデバイスを引き続き受け入れることができないためです(私に理由を聞かないでください...)。質問を調整しました。 –
次にOnSaveInstanceStateでダイアログが表示されているかどうかをチェックし、もしそのブール値がバンドルに保存されていれば、OnCreate/onRestoreInstanceStateがそのブール値を読み込んでダイアログを再作成する必要があります。また、メモリリークを避けるために、onPauseのダイアログを非表示にしてonResumeに表示します。 – Scrotos
OnCreate/onRestoreInstanceStateがトリガーされないため、動作しません。アクティビティはゼロから構築されていません。 –