Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.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 - Fatal编程技术网

Android 按主页按钮保存数据

Android 按主页按钮保存数据,android,Android,我正在制作计算用户收入和结果的应用程序。最近我发现,若用户按了计算器上的home(主页)按钮(我使用的是基本计算器,由安卓操作),那个么他/她并没有保存的所有数据都将被删除。我如何通知用户,以便他们保存所有未保存的数据?我想在这种情况下显示对话框,但我不知道如何检测主控按钮按下。可能有人也有这个问题,可以帮我吗 谢谢。按下主页按钮,活动将调用onPause()方法。您可以重写此方法来编写操作。也可以使用 public void onSaveInstanceState(Bundle outStat

我正在制作计算用户收入和结果的应用程序。最近我发现,若用户按了计算器上的home(主页)按钮(我使用的是基本计算器,由安卓操作),那个么他/她并没有保存的所有数据都将被删除。我如何通知用户,以便他们保存所有未保存的数据?我想在这种情况下显示对话框,但我不知道如何检测主控按钮按下。可能有人也有这个问题,可以帮我吗


谢谢。

按下主页按钮,活动将调用
onPause()
方法。您可以重写此方法来编写操作。也可以使用

public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) {
        super.onSaveInstanceState(outState, outPersistentState);
    }

    @Override
    protected void onRestoreInstanceState(Bundle savedInstanceState) {
        super.onRestoreInstanceState(savedInstanceState);
    }

要恢复您的值。

按主页按钮时,活动将调用
onPause()
方法。您可以重写此方法来编写操作。也可以使用

public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) {
        super.onSaveInstanceState(outState, outPersistentState);
    }

    @Override
    protected void onRestoreInstanceState(Bundle savedInstanceState) {
        super.onRestoreInstanceState(savedInstanceState);
    }

恢复您的值。

您可以按如下方式覆盖onKeyDown

public boolean onKeyDown( int keyCode, KeyEvent event) {


    if (keyCode == KeyEvent .KEYCODE_HOME) {
     //Dialog here to notify user
    return true ;
        }else{
    return super .onKeyDown(keyCode, event );
    }
    }

您可以按如下方式覆盖onKeyDown

public boolean onKeyDown( int keyCode, KeyEvent event) {


    if (keyCode == KeyEvent .KEYCODE_HOME) {
     //Dialog here to notify user
    return true ;
        }else{
    return super .onKeyDown(keyCode, event );
    }
    }
试试这个

@Override
    public void onAttachedToWindow() {
        super.onAttachedToWindow();
        this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);           
    }

@Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {     

        if(keyCode == KeyEvent.KEYCODE_HOME)
        {
           //YOUR CODE
        }
    });
试试这个

@Override
    public void onAttachedToWindow() {
        super.onAttachedToWindow();
        this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);           
    }

@Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {     

        if(keyCode == KeyEvent.KEYCODE_HOME)
        {
           //YOUR CODE
        }
    });

谢谢你,但我已经尝试过这种方法,只有当我在应用程序中而不是在calculator@Steve等等,你想从Android计算器应用程序保存数据吗?不是你的应用程序吗?@da-jin-c我想做的是:如果用户从y应用程序启动的计算器应用程序中按下home按钮,则显示对话框。虽然从技术上讲,当用户从计算器应用程序中按下home按钮时显示对话框是可能的,但我认为这不会达到你认为的效果。如果我理解正确,您想让他们在计算器中保存数据吗?如果他们使用的计算器应用程序没有这个功能怎么办?@da-jin-c很抱歉这么晚才回复。不,在我的对话框中,用户将看到这样的内容:是否要保存您今天所做的所有操作?(在我的应用程序中,而不是在计算器中)谢谢您,但我尝试了此方法,仅当我在应用程序中而不是在计算机中时,此方法才有效calculator@Steve等等,你想从Android计算器应用程序保存数据吗?不是你的应用程序吗?@da-jin-c我想做的是:如果用户从y应用程序启动的计算器应用程序中按下home按钮,则显示对话框。虽然从技术上讲,当用户从计算器应用程序中按下home按钮时显示对话框是可能的,但我认为这不会达到你认为的效果。如果我理解正确,您想让他们在计算器中保存数据吗?如果他们使用的计算器应用程序没有这个功能怎么办?@da-jin-c很抱歉这么晚才回复。不,在我的对话框中,用户将看到类似这样的内容:是否要保存今天所做的所有操作?(在我的应用程序中,而不是在计算器中)