Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 已暂停但未触发_Android_Android Activity_Onpause - Fatal编程技术网

Android 已暂停但未触发

Android 已暂停但未触发,android,android-activity,onpause,Android,Android Activity,Onpause,我已经创建了一个对话框,但是根据活动工作流,它应该触发onpause,但是没有。出什么事了? Android活动流程: 此代码仅显示警报,但不会导致暂停 onPause将在另一个活动(而不是警报)隐藏该活动时被调用。警报仍然属于同一活动。此代码将仅显示警报,但不会导致暂停 onPause将在另一个活动(而不是警报)隐藏该活动时被调用。警报仍然属于同一活动。活动的API有更好的定义: 当某个活动进入后台但尚未被终止时,作为活动生命周期的一部分调用。onResume()的对应项 您对“部分可见”的

我已经创建了一个对话框,但是根据活动工作流,它应该触发onpause,但是没有。出什么事了? Android活动流程:


此代码仅显示警报,但不会导致暂停


onPause
将在另一个活动(而不是警报)隐藏该活动时被调用。警报仍然属于同一活动。

此代码将仅显示警报,但不会导致暂停


onPause
将在另一个活动(而不是警报)隐藏该活动时被调用。警报仍然属于同一活动。

活动的API有更好的定义:

当某个活动进入后台但尚未被终止时,作为活动生命周期的一部分调用。onResume()的对应项

您对“部分可见”的怀疑不是由于对话框引起的,查看您的链接,您可以找到:

当系统为您的活动调用onPause()时,从技术上讲,这意味着您的活动仍然部分可见,但最常见的情况是指示用户正在离开活动,并且很快将进入停止状态


活动API有更好的定义:

当某个活动进入后台但尚未被终止时,作为活动生命周期的一部分调用。onResume()的对应项

您对“部分可见”的怀疑不是由于对话框引起的,查看您的链接,您可以找到:

当系统为您的活动调用onPause()时,从技术上讲,这意味着您的活动仍然部分可见,但最常见的情况是指示用户正在离开活动,并且很快将进入停止状态


对话框
实际上不应该暂停活动。你可能被这句话弄糊涂了-

在正常应用程序使用期间,前台活动有时会受到其他视觉组件的阻碍,导致活动暂停。例如,当半透明活动打开时(例如对话框样式的活动),上一个活动将暂停

它以对话框的形式讨论新的
活动
打开,但不是对话框

但是,如果希望在对话框打开时触发某些代码,可以使用-


对话框
实际上不应该暂停活动。你可能被这句话弄糊涂了-

在正常应用程序使用期间,前台活动有时会受到其他视觉组件的阻碍,导致活动暂停。例如,当半透明活动打开时(例如对话框样式的活动),上一个活动将暂停

它以对话框的形式讨论新的
活动
打开,但不是对话框

但是,如果希望在对话框打开时触发某些代码,可以使用-

    @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;
    }
alert.setOnShowListener(new DialogInterface.OnShowListener() {      
    @Override
    public void onShow(DialogInterface dialog) {
        stopAutoCall = true;
    }
});