0

クルトン通知ライブラリで深刻な問題に直面しています。 アクティビティをすばやく切り替えると、資格情報の欠落や「最初に日付を挿入」などの更新用のクルトンが表示されなくなり、ユーザーが残ります何の情報もなく、何が問題なのか。

たとえば、単純なユースケース: アプリケーションへのログイン、ログアウト、

再ログインを試みますが、資格情報が間違っているため、クルトンが表示されなくなりました。

私は試しました: Courton.clearAllNotifcations() inPause() で、さらに Crouton.clearCroutonsForActivity(this)onPause ()で、

問題を解決するかもしれませんが、解決しませんでした。

私もCroutonLibraryでデバッグしましたが、問題は、Croutonがキューに追加され、アクティビティが終了し、何かが終了したようです(onPostExecute()でaSyncTaskがクルトンを表示するなど)、これが再びキューに追加され、その後、キューはスタックします。

また、(実際にキューをクリアする) clearAllNotifications は機能しません。これは、コートン (acitvity.finish() 後に asynctask が終了する) が後で追加され、問題が解決しないためです。

も試しました:

   @Override
    protected void onDestroy() {
         Crouton.clearCroutonsForActivity(this);
         Crouton.cancelAllCroutons();
         super.onDestroy();
     }

既知の問題: https://github.com/keyboardsurfer/Crouton/issues/24でもうまくいき ませんでした...

アドバイスありがとうございます! :)

4

2 に答える 2

1

Crouton に関する正しい問題と、問題の原因となっているコードの一部を見つけました。

あなたの場合、実際にはすでに破壊されているはずなのに、AsyncTaskまだ実行されている と相関しています。Activity一般に、長時間実行される動作をユーザー向けコンポーネントから移動すること、つまりサービス層を使用することは良いことです。

それまでは、キャンセルするAsyncTaskとうまくいくはずです。

于 2013-10-28T08:50:44.077 に答える
0

説明のためのthx @keyboardsurfer ...

追加... そしてAsyncTaskをメンバー変数に抽出しています...

@Override
    protected void onPause() {
        Crouton.clearCroutonsForActivity(this);
        if (loadTasksTask != null) {
            loadTasksTask.cancel(true);
        }
        super.onPause();
    }

問題を修正しました!:) ありがとう :)

于 2013-10-28T16:54:35.573 に答える