2016-02-24 17 views
5

私の活動が見つかりましたonStop()メソッドは10秒未満の遅延で呼び出されます。私はこの行動の前に見たことがない。Android - onStop()が遅れて呼び出されます

注: -活性がsingleTopであり、それはIntent.FLAG_ACTIVITY_REORDER_TO_FRONTフラグ始まります。

注: -私はBuild Tools v23.0.2を使用しています。

遅延は以前ではなく、メソッドはすぐに呼び出されます。

+0

もう少し詳しいことを教えてください。どちらのアクティビティが始まりますか?私はこの質問に少なくとも2つの活動があると思います。 –

+0

@TinTran同意します。より具体的な詳細を記入してください。 – JohnWatsonDev

+0

コードをデバッグしましたか?あなたの質問を精緻化し、いくつかのコードスニペットをlogcatで貼り付けてください。正確な問題を理解するのに役立ちます。 –

答えて

2

あなたは別のアクティビティを開始していて、現在のアクティビティがonStop()コールバックを受け取ると予想しています。 activity lifecycleによれば、onPause()メソッドはonStop()の前に呼び出されます。場合によっては、onSaveInstance()はonStop()メソッドの前に呼び出されることもあります。さらに、startActivityまたはstartActivityForResultを呼び出すと(渡されるパラメータに応じてonStopが呼び出されると想定していると仮定しています)、これらのパラメータを計算/取得する必要がある場合は、システムがstartActivityを実行する前にしばらく時間がかかります。これはAndroidがライフサイクルコールを開始する最も早い時期です。ここにコードがない場合、onStopが呼び出される前に何が実行されているのかを見ることはできません。 startActivityから始まり、onStopが呼び出されたときのコード実行時間のタイムラインを確認することをお勧めします。startActivityコールの直前のタイムスタンプから始まり、タイムスタンプの開始時刻にタイムスタンプで終了します。時間が費やされた場所を知るためにonStopを使用します。 startActivityまたはstartActivityForResultのすべてのパラメータが以前に値に設定されていることを確認して、これを単純化することもお勧めします。

0

エミュレータかもしれませが

が、onStop()は何のonPause(

単一のコマンドとして一度に呼ばれるべきではない)か何かが私の場合はこの

0

前に呼び出され、今日に遅いですが、私は停止しますonStop()が呼び出されたが、onStop()の呼び出しに10秒の遅延があると、

あなたは、私は同じ問題を抱えていた

Application.ActivityLifecycleCallbacks { 

    //post event here.and check the activity's Name in my targetActivity which play my video. 
    onActivityStarted() 

} 
0

にイベントを投稿するeventBus、RxBusのようなものを使用することができます。 startActivity()でアクティビティを開始したとき、onStop()はonPause()の直後に10秒後に呼び出されました。

私の場合、起動されるアクティビティには、WebViewを持つフラグメントがあります。理由は分かりませんが、次の行を削除した場合、遅れはわずか2秒です。 uはその問題を修正したい場合は、単にマニフェストに移動し、noHistoryを追加

webView.setScrollbarFadingEnabled(false);

0

:真ウル活動には直接の停止にこれ以上の10秒の遅延を呼び出しません。これは固定された同じ問題を抱えていましたが、そうしたい場合はプログラムでフラグに渡すことも可能です。