本次了解到比较重要的就是应用程序的完全退出
问题:主窗口A调用了子窗口B,在窗口B中要退出应用程序,使用直接使用finish(),只会返回到窗口A中,折腾了好久,google后才解决,需要在窗口A调用窗口B的代码中加入
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);然后在窗口B中用finish();直接就可以退出应用程序。
实现弹出menu菜单
public boolean onCreateOptionsMenu(Menu menu)
{
// TODO Auto-generated method stub
menu.add(0, 0, 0, R.string.version);
menu.add(0, 1, 1, R.string.about);
menu.add(0, 2, 2, R.string.exit);
return super.onCreateOptionsMenu(menu);
}
选择对应菜单后的具体操作实现
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
// TODO Auto-generated method stub
super.onOptionsItemSelected(item);
switch (item.getItemId())
{
case 0:
versionPage();
break;
default:
break;
}
return true;
}
private void versionPage()
{
new AlertDialog.Builder(this).setTitle(R.string.version).setMessage(
R.string.version).setNegativeButton(R.string.confirm,
new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
// TODO Auto-generated method stub
}
}).show();
}
获取按钮事件
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
// TODO Auto-generated method stub
if (keyCode == KeyEvent.KEYCODE_BACK
|| keyCode == KeyEvent.KEYCODE_HOME)
{
exitSystem();
return true;
}
else
{
return super.onKeyDown(keyCode, event);
}
}
public void exitSystem()
{
new AlertDialog.Builder(this).setTitle(R.string.exitMsg).setMessage(
R.string.exitMag2).setPositiveButton(R.string.yes,
new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
// TODO Auto-generated method stub
finish();
}
}).setNegativeButton(R.string.no,
new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
// TODO Auto-generated method stub
}
}).show();
}
@Override
protected void onDestroy()
{
// TODO Auto-generated method stub
android.os.Process.killProcess(android.os.Process.myPid());
System.exit(0);
}