私はそこにアプリケーションがあります:スプラッシュ画面、主なアクティビティ(スプラッシュ画面から開始)、いくつかのフラグメントをアタッチして切り離すnavigationViewがあります。
私はAsyncTaskでいくつかの情報をダウンロードする必要があります。問題は、AsyncTaskがスプラッシュ画面(スプラッシュ画面が3秒間存続する)で呼び出され、ダウンロードに3秒以上かかることがあることです。 AsyncTaskのonPostExecute()
では、フラグメントがすでにロードされている場合にのみ、ファンクションloadFeeback()
(これはフラグメント・クラスにあります)をコールします。まだインスタンス化されていない可能性のあるアクティビティからフラグメントマネージャを取得
public void onPostExecute(Feedback[] feedbacks){
Dati.feedbacks = feedbacks;
if(mainActivity != null) {
FragmentManager fragmentManager = mainActivity.getSupportFragmentManager();
FeedbackFragment feedbackFragment = ((FeedbackFragment) (fragmentManager.findFragmentById(R.id.nav_feedback)));
Dati.feedbackDownloaded = true;
if (feedbackFragment != null)
feedbackFragment.loadFeeback();
}
}
問題は、私はmainActivityの参照を取得することはできませんし、それがスプラッシュ画面から呼び出されるので、私はAsyncTaskにコンテキストを渡すことができないということです。
誰でも手伝ってもらえますか?
なぜ主なアクティビティでAsyncTaskを呼び出さないのですか? – Cochi
@コチ私は時間を最適化したいです – Francesco