第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

將我的應(yīng)用程序置于 Android 后臺(tái)后如何恢復(fù)以前的應(yīng)用程序

將我的應(yīng)用程序置于 Android 后臺(tái)后如何恢復(fù)以前的應(yīng)用程序

慕森卡 2021-12-01 15:06:27
當(dāng)當(dāng)前任務(wù)(我的應(yīng)用程序)使用后退或概覽按鈕置于后臺(tái)時(shí),我需要一種方法來(lái)恢復(fù)以前的 Android 任務(wù)。例如,當(dāng)收到 SIP 呼叫時(shí),youtube 應(yīng)用程序播放視頻。軟件電話任務(wù)被置于前臺(tái),然后呼叫被應(yīng)答。通話結(jié)束后,按返回或概覽按鈕會(huì)顯示 youtube 應(yīng)用程序并繼續(xù)播放視頻。此類(lèi) Android 應(yīng)用程序的一個(gè)示例是 Linphone。我想知道如何以編程方式實(shí)現(xiàn)這一點(diǎn)。
查看完整描述

3 回答

?
紅糖糍粑

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超6個(gè)贊

正如其他人和此處所述,Android 會(huì)自動(dòng)為您處理。但是,如果你需要明確地添加任何東西去/來(lái)/從后臺(tái)狀態(tài),那么你也可以重寫(xiě)時(shí)onSaveInstanceState()onRestoreInstanceState()將被相應(yīng)地調(diào)用方法。

當(dāng)您的 Activity 開(kāi)始停止時(shí),系統(tǒng)會(huì)調(diào)用該onSaveInstanceState()方法,以便您的 Activity 可以將狀態(tài)信息保存到實(shí)例狀態(tài)包中。此方法的默認(rèn)實(shí)現(xiàn)保存有關(guān) Activity 視圖層次結(jié)構(gòu)狀態(tài)的瞬態(tài)信息,例如EditText小部件中的文本或小部件的滾動(dòng)位置ListView。

要為您的 Activity 保存其他實(shí)例狀態(tài)信息,您必須覆蓋onSaveInstanceState()并將鍵值對(duì)添加到在Bundle您的 Activity 意外銷(xiāo)毀時(shí)保存的 對(duì)象。如果您覆蓋onSaveInstanceState(),并且您希望默認(rèn)實(shí)現(xiàn)保存視圖層次結(jié)構(gòu)的狀態(tài),則必須調(diào)用超類(lèi)實(shí)現(xiàn)。

@Override

protected void onRestoreInstanceState(Bundle outState) {

    if (outState != null) {

       Crashlytics.log(1, "FormActivity", "Method:onRestoreInstanceState, Msg: saved instance is not null");


        if (outState.containsKey("record")

                && Session.getCurrentRecord() == null) {

            Session.setCurrentRecord(

                    gson.fromJson(

                            outState.getString("record"),

                            Record.class

                    )

            );

        }


        if (outState.containsKey("user")

                && Session.getCurrentUser() == null) {

            Session.setCurrentUser(

                    gson.fromJson(

                            outState.getString("user"),

                            User.class

                    )

            );

        }

    }

    super.onRestoreInstanceState(outState);

}


@Override

protected void onSaveInstanceState(Bundle outState) {

    Session.setCurrentRecord(record);

    outState.putString("record", gson.toJson(Session.getCurrentRecord()));

    outState.putString("user", gson.toJson(Session.getCurrentUser()));


    super.onSaveInstanceState(outState);

}


查看完整回答
反對(duì) 回復(fù) 2021-12-01
?
繁花如伊

TA貢獻(xiàn)2012條經(jīng)驗(yàn) 獲得超12個(gè)贊

這是由android系統(tǒng)自動(dòng)完成的。

現(xiàn)在為什么您可能無(wú)法注意到您的應(yīng)用程序的這種行為。

  • 您可能正在從應(yīng)用啟動(dòng)器啟動(dòng)您的應(yīng)用。這意味著您已經(jīng)將所有其他應(yīng)用程序(啟動(dòng)器除外)置于后臺(tái)?,F(xiàn)在,根據(jù)啟動(dòng)器設(shè)置,當(dāng)您按下后退按鈕時(shí),您可能會(huì)從啟動(dòng)應(yīng)用程序的位置進(jìn)入頁(yè)面或主頁(yè)。

你什么時(shí)候可以觀察到這種行為

  1. 如果您的活動(dòng)是從后臺(tái)服務(wù)啟動(dòng)的,例如廣播接收器

  2. 如果您的活動(dòng)是通過(guò)單擊通知按鈕啟動(dòng)的

    • 基本上,當(dāng)您的活動(dòng)創(chuàng)建時(shí)沒(méi)有殺死或?qū)⑵渌麘?yīng)用程序置于后臺(tái),當(dāng)您的應(yīng)用程序關(guān)閉時(shí),您將返回到同一個(gè)應(yīng)用程序。

例外 - 如果您使用主頁(yè)按鈕,所有應(yīng)用程序都會(huì)轉(zhuǎn)到后臺(tái)并顯示主屏幕。

希望這可以幫助。


查看完整回答
反對(duì) 回復(fù) 2021-12-01
?
動(dòng)漫人物

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超10個(gè)贊

這是關(guān)于如何保留 UI 狀態(tài)的官方文檔:

https://developer.android.com/topic/libraries/architecture/saving-states

如果用戶將手機(jī)配置為始終在后臺(tái)終止活動(dòng)或者他們的資源有限,那么您必須處理它,但在某些情況下(您的活動(dòng)沒(méi)有被終止并保留在內(nèi)存中),因?yàn)?Mayank 回答系統(tǒng)會(huì)為您完成.

從電話應(yīng)用程序接聽(tīng)電話將中斷您的應(yīng)用程序(系統(tǒng)啟動(dòng)的 UI 狀態(tài)解除)您應(yīng)該按照上述文檔的建議執(zhí)行的操作:

在部分:管理 UI 狀態(tài):分而治之

  • 本地持久性:存儲(chǔ)您在打開(kāi)和關(guān)閉活動(dòng)時(shí)不想丟失的所有數(shù)據(jù)。示例:歌曲對(duì)象的集合,其中可能包括音頻文件和元數(shù)據(jù)。

  • ViewModel:將顯示關(guān)聯(lián)的 UI 控制器所需的所有數(shù)據(jù)存儲(chǔ)在內(nèi)存中。示例:最近搜索和最近搜索查詢的歌曲對(duì)象。

  • onSaveInstanceState():如果系統(tǒng)停止然后重新創(chuàng)建 UI 控制器,則存儲(chǔ)輕松重新加載活動(dòng)狀態(tài)所需的少量數(shù)據(jù)。不是在此處存儲(chǔ)復(fù)雜對(duì)象,而是將復(fù)雜對(duì)象持久保存在本地存儲(chǔ)中,并將這些對(duì)象的唯一 ID 存儲(chǔ)在 onSaveInstanceState() 中。示例:存儲(chǔ)最近的搜索查詢。

因此,在您的情況下,有一個(gè)視圖模型可以存儲(chǔ)收到呼叫時(shí)的 URL 和視頻時(shí)間

我還會(huì)使用正確的生命周期鉤子在 instanceState 中存儲(chǔ)相同的信息

這是一個(gè)很好的 SO 線程,其中包含有關(guān)如何使用 savedInstanceState 的示例: Saving Android Activity state using Save Instance State

它有新舊答案,您可能需要通讀一遍以了解事情如何隨著時(shí)間的推移而發(fā)生變化

基本上上面三個(gè)要點(diǎn)是官方文檔推薦的策略


查看完整回答
反對(duì) 回復(fù) 2021-12-01
  • 3 回答
  • 0 關(guān)注
  • 416 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)