android - Activity 循环以及如何限制它们

标签 android email android-intent android-activity

我面临着旧 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/

相关文章:

android - 如何在不征求用户许可的情况下直接卸载Android应用程序

ios - iphone 电子邮件表单按钮不起作用

php - 如何将自定义主题/标题添加到仅从特定文件夹中调用的 mail()

android - 从应用程序 apk 安装程序中删除完成按钮

android - 使用位置更改 PagerTabStrip 的背景颜色

php - CodeIgniter 发送 SMTP Gmail

android - 无法从 Intent 中获取额外的值

android 添加联系人到手机

java - IOException 未捕获

android - EditText 属性 maxLength 不能正常/完全用于字母