应用程序停止,如果我按下后退按钮在Android中

时间:2011-03-13 05:10:27

标签: android

我创建了一个包含的应用程序 进度条有最大限制。如果我按开始启动我的进度条进度条在后台启动并且只在应用程序中得到消息框。但是,如果我按下BACK按钮,那么我的应用程序会停止.. 我希望我的应用程序在后台运行,虽然我按下BACK按钮..所以请告诉我如何实现这个..如果想要我的应用程序的代码然后让我知道......

4 个答案:

答案 0 :(得分:1)

试试这个

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
            if(keyCode==KeyEvent.KEYCODE_BACK){
                moveTaskToBack(true);
            }
            return super.onKeyDown(keyCode, event);
}

答案 1 :(得分:1)

您需要在按下后退按钮时保存Android应用程序的状态。 (将所有应用程序数据保存在onPause中并在再次启动应用程序时重复使用它)或使用Service在Android关闭应用程序时使其在后台运行。

如果您的服务就像一项任务(例如文件上传或下载),那么更方便的是IntentService。任务结束后,IntentService将自动完成。

另外,请确保您没有在UI线程中执行任何这些操作。如果线程被阻止超过一定时间,那么Android会认为您的应用没有响应,并会强制用户关闭该应用。使用AsyncTask将所有长时间运行的操作移动到另一个线程。

答案 2 :(得分:0)

您可以使用Service的概念作为在后台运行它的解决方案。

答案 3 :(得分:0)

@rohit如果android版本低于7 onBackPressed()尚未实现。然后使用以下代码段,它应该可以工作。

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)  {
    if (  Integer.valueOf(android.os.Build.VERSION.SDK) < 7 //Instead use android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.ECLAIR
            && keyCode == KeyEvent.KEYCODE_BACK
            && event.getRepeatCount() == 0) {
        // Take care of calling this method on earlier versions of
        // the platform where it doesn't exist.
        onBackPressed();
    }

    return super.onKeyDown(keyCode, event);
}
@Override
public void onBackPressed() {
    // This will be called either automatically for you on 2.0
    // or later, or by the code above on earlier versions of the
    // platform.

    doSomething();
    return;
}