aks*_*nge 1 android onpause android-activity
在我的应用程序中,我有5个活动(不包括主要活动Im)以循环方式重复使用其他4个活动。
在我的每个活动(主要除外)的onPause()方法中,我都编写了Activityname.this.finish();。
当我结束第五项活动的周期并返回到主要活动时...
但是我的问题是当我结束主要活动时..而不是关闭应用程序,它进入了第三次活动。
我不知道到底是哪里出了问题。可能在使用db n的第三活动im中没有明确关闭它。这有问题吗?
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
PlayerDetails.this.finish();
}
Run Code Online (Sandbox Code Playgroud)
我正在使用此onPause()方法
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if (keyCode==KeyEvent.KEYCODE_BACK){
AlertDialog.Builder alert = new AlertDialog.Builder(MainActivity.this);
alert.setIcon(R.drawable.ic_launcher);
alert.setTitle(R.string.app_name);
alert.setMessage("Really Exit?");
alert.setPositiveButton("Yes", new DialogInterface.OnClickListener(){
@Override
public void onClick(final DialogInterface dialog, final int which) {
MainActivity.this.finish();
dialog.dismiss();
}
});
alert.setNegativeButton("No", new DialogInterface.OnClickListener(){
@Override
public void onClick(final DialogInterface dialog, final int which) {
dialog.dismiss();
}
});
try{
AlertDialog dialog = alert.create();
dialog.show();
}
catch(Exception e){
e.printStackTrace();
}
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
这是我关闭应用程序的mainActivity方法
您可以使用标志,而不是finish()在每个活动中每次都调用。当您启动一个新的Activity时,只需使用,FLAG_ACTIVITY_CLEAR_TASK其后FLAG_ACTIVITY_NEW_TASK使用,Intent它会清除堆栈缓冲区并以新的身份启动Activity。就像是 ..
Intent intent = new Intent(current_context, destination_activity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
您可以在此对话中找到有关标志的更多信息。
| 归档时间: |
|
| 查看次数: |
1866 次 |
| 最近记录: |