Вернуться к исходной активности после отправки электронной почты в Android - PullRequest
4 голосов
/ 02 декабря 2010

Я хочу вернуться к исходной активности после отправки электронной почты, запустив почтовый клиент в Android.Но это не работает вообще.Я пробовал следующий код.

try {
          path = android.provider.MediaStore.Images.Media.insertImage(
              getContentResolver(), returnedBitmap, "diploma.png", null);
          Uri diplomaUri = Uri.parse(path);         
          //send email with the above generated image as attachment
          final Intent emailIntent2 = 
                 new Intent(android.content.Intent.ACTION_SEND);
          emailIntent2.putExtra(Intent.EXTRA_SUBJECT,
                                "Potty Diploma for Teddy");
          emailIntent2.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(""));
          emailIntent2.putExtra(Intent.EXTRA_STREAM, diplomaUri);
          emailIntent2.setType("image/png");
          startActivityForResult(Intent.createChooser(emailIntent2, "Email:"), 
                                 EMAIL_SUCCESS);
      } catch(Exception e) {
          final AlertDialog.Builder builder = 
                new AlertDialog.Builder(v.getContext());
       builder.setTitle("Device Media Access");
       builder.setMessage("Failed to access media store of the device");
       builder.setCancelable(false);
       builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {
         dialog.cancel();
        }
       });
       AlertDialog alert = builder.create();
       alert.show();
         }


@Override
    public void onActivityResult(int reqCode, int resultCode, Intent data){
     super.onActivityResult(reqCode, resultCode, data);
        switch(reqCode){
          case (EMAIL_SUCCESS):
            if (resultCode == RESULT_OK){
             Intent myIntent = new Intent(Progress.this, iGoPotty.class);
      myIntent.putExtra("tab_id", 2);
      startActivity(myIntent);
            }
        }
    }

Ответы [ 2 ]

0 голосов
/ 11 апреля 2014

Попробуйте добавить флаг (см. Ниже), чтобы получить результат обратно из почтового клиента:

intent.addFlags (Intent.FLAG_ACTIVITY_FORWARD_RESULT);

Таким образом, вы будетевернитесь к своей деятельности.

0 голосов
/ 14 апреля 2011

Кажется, вы пытаетесь создать новое намерение вернуться к своей первоначальной деятельности? почему не просто setResult() и finish() в onActivityResult()? Я не могу понять, что вы пытаетесь сделать, без какого-либо кода или дополнительной информации с вашей стороны. Я предполагаю, что вы правильно звоните setResult() и finish() в рамках своей почтовой активности. Это тогда "быть" пойманным здесь в onActivityResult()? Например, вы установили точку останова и прошли через нее, чтобы увидеть, получаете ли вы какой-либо результат? Если да, то что стреляет, а что нет? Если все стреляет - это ваша myIntent != null, возможно, проблема с областью видимости?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...