我在android中做了一个应用程序。这是一个与计时器相关的应用程序。现在我已经尝试了很多方法来控制android设备的后退按钮,当它被按下时,进程应该被杀死并直接显示主菜单......请帮助我...提前谢谢你..!
8 回答
试试这个代码
@Override
public void onBackPressed() {
yourActivity.this.finish;
}
你可以这样做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);
}
希望这可以帮助您理解这个概念。
只需清除活动历史记录,以便您的应用程序关闭。然后finsh();
调用startActivity();
<activity
android:name="com.example.abcd.Your_Acitivty"
android:noHistory="true">
</activity>
快乐编码!
好吧,吉米,您可以使用此代码转到设备的主屏幕-
finish();
moveTaskToBack(true);
System.exit(0);
finish()方法仅关闭当前活动。
moveTasktoBack将隐藏您的应用程序,您还可以根据需要通过android.os.Process.killProcess(android.os.Process.myPid())快速终止应用程序。
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
moveTaskToBack(true);
return true;
}
return super.onKeyDown(keyCode, event);
}
在清单中,您可以尝试添加此
<activity
android:name=".MainActivity"
android:finishOnCloseSystemDialogs="true"
</activity>
我遇到了类似的问题,这为我解决了。
我通过覆盖 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
}