我面临着旧 Activity 之间循环的问题,为了进一步解释,我有:
Activity1 -> Activity2 -> Activity3 -> Activity4 -> Activity5 ->
发送邮件。
用户可以多次返回 Activity4
并再次返回 Activity5
并发送邮件。此外,它创建了 activity4 的两个/多个副本,用户必须按返回键才能关闭该 Activity 。我希望 Activity 只能使用一次。我通过使用 onpause
完成调用直到 Activity 5
解决了这个问题。但是由于发送电子邮件的 Intent 使我退出了应用程序,并且当我完成所有 Activity 时暂停
我无法返回应用程序可以请任何人帮助我....
public void onClick(View v) {
// TODO Auto-generated method stub
getdata();
String message = message
;
final Intent emailIntent = new Intent(
android.content.Intent.ACTION_SEND);
emailIntent.setType("plain/text");
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL,
new String[] { "google@gmail.com" });
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,
"subject");
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, message);
startActivityForResult(Intent.createChooser(emailIntent, "Send mail..."),1);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
Intent Act2Intent = new Intent(New.this, Old.class);
startActivity(Act2Intent);
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
finish();
}
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
Intent Act2Intent = new Intent(New.this, Older.class);
startActivity(Act2Intent);
finish();
return true;
}
return false;
}
@Override
public void onStop() {
super.onStop();
EasyTracker.getInstance(this).activityStop(this);
}
最佳答案
不要在 Activity5
中使用 finish();
。
不是使用finish
,而是在创建activity
时总是将这两个标志添加到新的activity
以终止所有其他 Activity 。
Act2Intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Act2Intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
这不会创建 Activity 的两个/多个副本。
关于android - Activity 循环以及如何限制它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20406380/