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

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

Android:在什么情況下出現(xiàn)對話框會導(dǎo)致調(diào)用onPause()?

Android:在什么情況下出現(xiàn)對話框會導(dǎo)致調(diào)用onPause()?

慕婉清6462132 2019-12-17 14:38:30
Android Activities文檔中的一個片段(向下滾動到“ 前臺壽命 ”行)說:活動可以頻繁地切換到前臺和從前臺跳出,例如,onPause()當(dāng)設(shè)備進(jìn)入睡眠狀態(tài)或出現(xiàn)對話框時,將調(diào)用該活動。我不太明白這一點。在什么情況下會發(fā)生這種情況?被onPause()稱為僅如果有問題的對話的上下文是從頂部其活性的對話框?qū)@示不同?編輯:添加代碼示例以詳細(xì)說明我的疑問根據(jù)文檔中的上述引用,onPause()當(dāng)顯示以下代碼中的AlertDialog(或只是Dialog)時,是否應(yīng)該調(diào)用我的活動的方法?顯示對話框時,我是否應(yīng)該看到“ onPause named”日志條目?但我看不到這種情況。如果我正確理解了Android的生命周期,那么也不應(yīng)該!那么,當(dāng)時的文件指向什么呢?public class LifeCycleTestActivity extends Activity {    private static final String TAG = "LifeCycleTest";    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        Button btn = (Button) findViewById(R.id.button1);        btn.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {                Log.d(TAG, "onClick");                AlertDialog dialog = new AlertDialog.Builder(LifeCycleTestActivity.this).create();                 dialog.setMessage("You Clicked on the button");                 dialog.setTitle("Dialog!");                 dialog.setButton(AlertDialog.BUTTON_NEUTRAL, "OK", new DialogInterface.OnClickListener() {                    @Override                    public void onClick(DialogInterface dialog, int which) {                        dialog.dismiss();                    }                });                 dialog.setCancelable(true);                 dialog.show();                /*                Dialog dialog = new Dialog(LifeCycleTestActivity.this);                 dialog.setTitle("Dialog!");                 dialog.setCancelable(true);                 dialog.show();                */            }        });            }    @Override    protected void onPause() {        Log.d(TAG, "onPause() called");        super.onPause();    }    @Override    protected void onResume() {        super.onResume();        Log.d(TAG, "onResume() called");    }}
查看完整描述

3 回答

?
臨摹微笑

TA貢獻(xiàn)1982條經(jīng)驗 獲得超2個贊

onPause()當(dāng)您的活動不再位于活動堆棧的頂部時,將調(diào)用。對話框本身不是活動,因此不會替換堆棧頂部的當(dāng)前活動,因此不會導(dǎo)致任何暫停。

但是,對話框(小寫)不需要由Dialog類實現(xiàn)。例如,用Activity的主題設(shè)置為對話框主題的方法來實現(xiàn)它并不罕見。在這種情況下,顯示“ 活動為對話框”將使新的活動位于堆棧的頂部,暫停先前的活動。


查看完整回答
反對 回復(fù) 2019-12-17
?
小唯快跑啊

TA貢獻(xiàn)1863條經(jīng)驗 獲得超2個贊

錯誤的是,活動在onPause階段不再保留在活動堆棧的頂部。

將活動設(shè)置為暫停狀態(tài)-

  • 活動部分可見,例如活動對話框。

  • Activity對象保留在內(nèi)存中,它維護(hù)所有狀態(tài)和成員信息,并保持與窗口管理器的連接。

    例如,按下主頁按鈕會導(dǎo)致活動進(jìn)入onPause()。仍然在堆棧頂部。

在圖1中。Activity3將被銷毀并從頂部堆棧中移除

在圖2中。現(xiàn)在,任務(wù)A進(jìn)入后臺,但Activty X仍位于堆棧頂部。如果您在此狀態(tài)下重寫onPause()方法


http://img1.sycdn.imooc.com//5df878120001807606170195.jpg

圖1.任務(wù)中每個新活動如何將項目添加到后臺堆棧的表示。當(dāng)用戶按下“后退”按鈕時,當(dāng)前活動將被銷毀并且上一個活動將恢復(fù)。


http://img1.sycdn.imooc.com//5df8781b000154ce02770148.jpg

圖2.兩個任務(wù):任務(wù)B在前臺接收用戶交互,而任務(wù)A在后臺等待恢復(fù)。


查看完整回答
反對 回復(fù) 2019-12-17
  • 3 回答
  • 0 關(guān)注
  • 1642 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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