我有一个问题 当我点击我的Android应用程序上的退出按钮,我用我的三星Note 3调试它。它将从应用程序的开始循环而不是退出到我的笔记3的主屏幕
下面是我的代码:
public class MainActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.home);
Button start=(Button)findViewById(R.id.btnStart);
Button exit=(Button)findViewById(R.id.btnExit);
start.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v){
/** start game */
startLoop();
}
});
exit.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v){
onDestory();
}
});
}
public void startLoop(){
Intent game = new Intent(this, Splash.class);
startActivity(game);
}
protected void onDestory(){
int pid=android.os.Process.myPid();
android.os.Process.killProcess(pid);
}
}
答案 0 :(得分:3)
只需致电finish()
- 无需执行任何onDestroy()
内容。
finish()
会为您关闭该应用。
此外,只要您覆盖onDestroy()
,请务必致电super.onDestroy()
!
答案 1 :(得分:1)
在点击监听器上的退出按钮上调用finish()
。您也可以使用java的System.exit(0)
答案 2 :(得分:0)
这就是我处理游戏的方式......
GameWorld.java(或其他东西)需要对游戏状态进行控制
public void pauseThread() {
gameLoop.setKeepPlaying(false);
}
GameLoop.java
// method for accessing the game logic
public void setKeepPlaying(boolean run) {
keepPlaying = run;
}
和循环本身:
/** MAIN GAME LOOP */
while (keepPlaying) {
[...]
}
btw:驱动是Thread
编辑:示例onDestroy部分采用Android ....
@Override
protected void onDestroy() {
Log.d("MainActivity", "***onDestroy()***");
disableKeepScreenOn(getWindow(), TAG);
unregisterReceiverAndStopServices();
NotificationManager nManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
nManager.cancel(NOTIFICATION_GENERAL);
super.onDestroy();
}
这是一个菜单,它提供了一个关闭应用程序的条目......
@Override
public boolean onOptionsItemSelected(MenuItem item) {
super.onOptionsItemSelected(item);
switch (item.getItemId()) {
[...]
case (OPM_EXIT):
MainActivity.this.finish();
return true;
default:
return false;
}
}