2

我在android中做了一个应用程序。这是一个与计时器相关的应用程序。现在我已经尝试了很多方法来控制android设备的后退按钮,当它被按下时,进程应该被杀死并直接显示主菜单......请帮助我...提前谢谢你..!在此处输入图像描述

4

8 回答 8

2

在您的活动中覆盖onBackPressed()并在那里添加您的必要代码

onBackPressed

当活动检测到用户按下返回键时调用。默认实现只是完成当前活动,但您可以覆盖它来做任何您想做的事情。

于 2013-01-01T10:55:49.667 回答
2

试试这个代码

@Override
public void onBackPressed() {
   yourActivity.this.finish;
}
于 2013-01-01T11:00:13.400 回答
1

你可以这样做onclick 后退按钮。

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
         finish();// call finish() on click of back button
    }
    return super.onKeyDown(keyCode, event);
}

例如:当您使用 startActivity(new intent(...))从 A 活动移动到 B 活动时;不要完成或杀死一个活动,它会在堆栈中So when you click on back button in B activity you can go back to A activity, which is already in stack.

当您想要返回主菜单时,在您移动到下一个活动时对每个活动调用完成()

例如:当您使用 startActivity(new intent(...))从 A 活动移动到 B 活动时;调用finish()杀死一个活动。So when you click on back button in B activity you can go back to Main Menu coz every activity ll be killed.

片段在这里:

startActivity(new intent(A.this, B.class));
finish(); // when you click back button on B activity, directly you can go to main menu

更新: 在按下后退按钮时使用以下代码杀死应用程序的其他方法。但不推荐

 @Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
         android.os.Process.killProcess(android.os.Process.myPid());// Kill the app on click of back button.
    }
    return super.onKeyDown(keyCode, event);
}

希望这可以帮助您理解这个概念。

于 2013-01-01T11:34:32.233 回答
1

只需清除活动历史记录,以便您的应用程序关闭。然后finsh();调用startActivity();

  <activity
        android:name="com.example.abcd.Your_Acitivty"
        android:noHistory="true">
  </activity>

快乐编码!

于 2013-10-03T06:18:36.050 回答
0

好吧,吉米,您可以使用此代码转到设备的主屏幕-

    finish();
    moveTaskToBack(true);
     System.exit(0);    

finish()方法仅关闭当前活动。

moveTasktoBack将隐藏您的应用程序,您还可以根据需要通过android.os.Process.killProcess(android.os.Process.myPid())快速终止应用程序。

于 2013-02-04T11:45:54.420 回答
0
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        moveTaskToBack(true);
        return true;
    }
    return super.onKeyDown(keyCode, event);
}
于 2013-03-20T06:19:42.697 回答
0

在清单中,您可以尝试添加此

<activity
    android:name=".MainActivity"
    android:finishOnCloseSystemDialogs="true"
</activity>

我遇到了类似的问题,这为我解决了。

于 2013-04-25T19:10:47.983 回答
0

我通过覆盖 onBackPress() 和 onStop() 解决了这个问题

@Override
protected void onStop() {
    super.onStop();
    System.exit(0); //kill the app

}

@Override
public void onBackPressed() { //here I capture the event onBackPress 
    super.onBackPressed(); 
    onStop(); //call onStop
}
于 2014-02-11T13:07:53.287 回答