亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

片段事務上的活動重置

片段事務上的活動重置

慕工程0101907 2021-06-22 17:49:35
我有一個活動,它根據用戶操作(按鈕單擊)或事件(觸發 LocalBroadcast 的 FCM 數據消息)加載多個片段。我最近在將 Fragment Transaction 放入 BroadcastReceiver 時遇到了障礙,一旦接收器被觸發,而不是加載下一個片段,我會得到第一個(默認)片段,它在活動的 OnCreate 中加載,暗示 Activity 以某種方式重置/重新啟動。鑒于這種速度,我在 Android Studio 上的 logcat 重置之前設法看到的唯一錯誤是:java.lang.IllegalStateException: 在 onSaveInstanceState 之后無法執行此操作除了我發現的這篇關于 Activity State Loss 的文章外,四處挖掘并沒有太大幫助。它相當古老(2013 年),但似乎有道理。但是,除了讓我的片段更復雜一點,并將下一個片段的邏輯交給這個本身之外,我想不出任何解決方案。請在下面找到發生這種情況的代碼位。BroadcastReceiver assistanceReceivedStatusReceiver = new BroadcastReceiver() {        public void dummyfunc(){            return;        }        @Override        public void onReceive(Context context, Intent intent) {            // this is triggered by the localBroadcast from FCM Service            boolean requestresult = intent.getBooleanExtra("success", true);            if(!requestresult) {                // we don't have a responder                Log.d(TAG, "onReceive: =======================================");                Log.d(TAG, "onReceive: =======================================");                Log.d(TAG, "onReceive: UNABLE TO FIND A RESPONDER");                Log.d(TAG, "onReceive: =======================================");                Log.d(TAG, "onReceive: =======================================");                String message = "Unable to find you a responder, please try again!";                frameAnimation.stop();                txtRequestStatus.setText(message);                dialogButtonLayout.setVisibility(View.VISIBLE);                showBottomAppBar();                showMenuFab();                moveMenuRight();                setMenuImage(R.drawable.baseline_undo_white_24dp);                menuButton.setOnClickListener(new View.OnClickListener() {            }        }    };關于出了什么問題的任何想法?與往常一樣,我很高興根據需要分享更多信息(代碼庫非常龐大,知道需要什么有助于我分享相關部分)。
查看完整描述

1 回答

?
米琪卡哇伊

TA貢獻1998條經驗 獲得超6個贊

據我所知,您的活動因添加片段時崩潰而重新啟動(java.lang.IllegalStateException)。

要確認,您可以更換

.commit()

方法與

.commitAllowingStateLoss()

看看這是否能解決你的問題


查看完整回答
反對 回復 2021-06-30
  • 1 回答
  • 0 關注
  • 196 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號