【问题标题】:Return to Home Activity after successfully sending email Android成功发送电子邮件 Android 后返回首页 Activity
【发布时间】:2014-09-30 01:57:09
【问题描述】:

我的应用程序允许用户在各个字段中输入信息,拍照,然后将所有信息发送到预先确定的电子邮件地址。

他们发送电子邮件后,我想显示一条感谢消息(可能通过 Toast),然后将它们带回我的家庭活动。要使用 iOS 行话,我如何在成功发送电子邮件时转到另一个屏幕。

编辑: 我试图实施提供的解决方案,但不是我的应用程序只是移动到下一个场景,而不是发送电子邮件。我是不是执行不正确?

if (Witness_response == "Yes"){
                Intent emailIntent = new Intent(Intent.ACTION_SEND);
                emailIntent.putExtra(Intent.EXTRA_EMAIL, new String[]{"roadsafety.app@shellharbour.nsw.gov.au"});
                emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Dob in a Hoon Report(Y)");
                emailIntent.putExtra(Intent.EXTRA_TEXT, "Hoon report has been recieved " + emailBody);
                emailIntent.setType("image/*");
                Uri uri = Uri.fromFile(f);
                emailIntent.putExtra(Intent.EXTRA_STREAM, uri);
                emailIntent.setType("message/rfc822");
                startActivity(Intent.createChooser(emailIntent, "Choose email client..."));
                Intent ReturnIntent = new Intent(dob_in_a_hoon.this, HomeScreen.class );
                dob_in_a_hoon.this.startActivity(ReturnIntent);

【问题讨论】:

    标签: android email android-intent


    【解决方案1】:

    这实际上取决于您的应用程序是如何构建的,如果它是基于片段交换构建的,您将需要加载所需的片段。否则你可以像这样开始一个新的意图(活动)

    Intent myIntent = new Intent(CurrentActivity.this, NextActivity.class);
    myIntent.putExtra("key", value); //Optional parameters
    CurrentActivity.this.startActivity(myIntent);
    

    您甚至可以通过调用 onBackPressed 来摆脱困境,这将带您回到上一个活动。

    【讨论】:

    • 有没有办法在用户发送电子邮件后实现?即在我的电子邮件意图结束时?
    • 它执行意图而不发送电子邮件。请参阅我编辑的问题以了解我的电子邮件意图以及我在哪里实施 - 我可能做错了。
    • 啊,是的,我想我看到了问题所在。您应该使用异步任务来发送电子邮件developer.android.com/reference/android/os/AsyncTask.html,并在 onPostExecute 中回调您的原始活动以启动新意图。如果这没有意义,请告诉我,我会进一步解释。
    • 是的,我想我需要一些例子和解释。
    • 您知道如何编写异步任务吗?...如果不知道,您应该很容易找到它。在您的活动中实现一个功能,该功能将执行所需的转场。然后将您的活动传递给异步任务的构造函数(注意:您可能应该通过接口执行此操作)并在异步任务的 onPostExecute 中调用活动上的该函数。
    【解决方案2】:

    这个 sn-p 允许你从活动 B 移动到活动 A:

        Intent i = new Intent(getApplicationContext(), HomeActivity.class);
        startActivity(i);
    

    或者像ed209说的,你可以通过调用onBackPressed方法回到之前的活动。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-04
      • 2016-12-14
      相关资源
      最近更新 更多