【发布时间】:2013-12-05 17:13:17
【问题描述】:
我面临旧活动之间循环的问题,为了进一步解释,我有:
Activity1 -> Activity2 -> Activity3 -> Activity4 -> Activity5 -> 发送邮件。
用户可以通过keydown多次返回Activity4,然后再次返回Activity5并发送邮件。此外,它会创建两个/多个 activity4 副本,用户必须按返回键才能关闭活动。我希望活动只有一次可用。我通过使用onpause 完成呼叫直到Activity 5 解决了这个问题。但是由于发送电子邮件的意图使我退出了应用程序,并且当我完成了所有活动on pause 我无法回到应用程序中,任何人都可以帮我解决这个问题....
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);
}
【问题讨论】:
-
不要使用finish(); Activity5 ,而不是在创建时使用完成,将这两个标志添加到新的活动中以杀死所有其他活动。 Act2Intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); Act2Intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
-
bobby ji mujhe ye mehod use karna nahi aata kya aap ye code me edit karke post kar sakte ho 感谢 monika
-
@user3058783 尝试用通用英语交流。
-
我正在尝试flag方法请等待更新
-
@user3058783 根据您的要求在答案中发布了代码,让我知道它是否有效
标签: android email android-intent android-activity