如何通过单击Android中的后退按钮来终止进程?

时间:2013-01-01 10:51:20

标签: android android-intent back kill-process

我已经在android中创建了一个应用程序。它是一个与timer相关的应用程序。现在我已经尝试了很多把控制器放在android设备的后退按钮上,当它被按下时,应该杀死进程并直接显示主菜单。 ..请帮帮我...提前感谢你..!enter image description here

8 个答案:

答案 0 :(得分:2)

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

onBackPressed

  

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

答案 1 :(得分:2)

试试这段代码

@Override
public void onBackPressed() {
   yourActivity.this.finish;
}

答案 2 :(得分:1)

你可以这样做点击后退按钮。

@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(新意图(...))从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(新意图(...))从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);
}

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

答案 3 :(得分:1)

只需清除活动历史记录即可关闭您的应用。并在finsh();

之后致电startActivity();
  <activity
        android:name="com.example.abcd.Your_Acitivty"
        android:noHistory="true">
  </activity>

快乐的编码!

答案 4 :(得分:0)

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

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

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

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

答案 5 :(得分:0)

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

答案 6 :(得分:0)

在Manifest中,您可以尝试添加此

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

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

答案 7 :(得分: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
}