2013-11-02 1 views
2

Я создал диалог, но в соответствии с рабочим процессом деятельности он должен запускать onpause, но это не так. Что происходит не так? Android активность потока: http://developer.android.com/training/basics/activity-lifecycle/pausing.htmlOnPaused not triggered

@Override 
    public boolean onOptionsItemSelected(MenuItem item) 
    { 
     //stopAutoCall = true; 
     // Handle item selection 
     // if (item.getTitle().toString().toLowerCase() == "settings") 
     // { 
     AlertDialog.Builder alert = new AlertDialog.Builder(this); 

     alert.setTitle("Number"); 
     alert.setMessage("Put here the number in to call"); 

     alert.show(); 
    } 

    @Override 
    public void onPause() 
    { 
     super.onPause(); 

     stopAutoCall = true; 
    } 

ответ

0

Этот код просто отображает предупреждение, но это не приведет к .

будет вызван, когда деятельность будет скрыта от другого действия, а не от предупреждения. Предупреждение по-прежнему относится к одной и той же деятельности.

0

API-интерфейс деятельности имеет лучшее определение:

OnPause

Called как часть жизненного цикла деятельности, когда деятельность происходит в фоновом режиме, но (пока) не был убит. Совместим с onResume().

Ваши сомнения частично видны не вызваны из-за диалога, глядя на вашу ссылку, вы можете найти:

Когда система вызывает OnPause() для вашей деятельности, это технически означает, что Ваша деятельность все еще частично видимый, но чаще всего это указание на то, что пользователь покидает эту активность, и вскоре он войдет в состояние «Остановлен».

4

A dialog На самом деле не предполагается приостанавливать действие. Вероятно, вы сбиты с толку этим предложением.

Во время обычного использования приложения активность переднего плана иногда затрудняется другими визуальными компонентами, которые заставляют действие приостанавливаться. Например, когда открывается полупрозрачный активность (например, один в стиле диалога), предыдущая деятельность приостанавливается

Каких переговоров о новом activity открытия, в стиле диалога, но не диалог.

Однако, если вы хотите, чтобы вызвать некоторый код всякий раз, когда ваш диалог открывается, вы можете использовать onShowListener .-

alert.setOnShowListener(new DialogInterface.OnShowListener() {  
    @Override 
    public void onShow(DialogInterface dialog) { 
     stopAutoCall = true; 
    } 
});