ОБНОВЛЕНИЕ: я думаю, что я неправильно понял вашу проблему;из того, что я могу сказать сейчас, вы хотите, чтобы ваш тост появлялся ПОСЛЕ того, как электронное письмо было отправлено, и был показан тост почтового приложения?Если это так, попробуйте следующее:
Сначала удалите finish()
из вашего onPause()
метода.
Затем замените startActivity
на startActivityForResult
, который принимает дополнительный аргумент requestCode
.requestCode
используется для отделения результатов от различных действий.
startActivityForResult(Intent.createChooser(emailIntent, "Please select Email Client"),
MY_REQUEST_CODE); // MY_REQUEST_CODE is some constant int >= 0
Наконец добавьте следующий код в и получите результат от startActivityForResult
.Здесь вы можете решить, какой тост отображать, в зависимости от результата.
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Log.i("SS", "onActivityResult: " + requestCode + ", " + resultCode + ", "
+ (data != null ? data.toString() : "empty intent"));
if(requestCode == MY_REQUEST_CODE) {
if(resultCode == RESULT_OK) {
Toast.makeText(getApplicationContext(), R.string.myString,
Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getApplicationContext(), R.string.myOtherString,
Toast.LENGTH_SHORT).show();
}
}
finish(); // to end your activity when toast is shown
}
Если это то, что вам действительно нужно, извините, я сначала не ясно увидел вашу проблему.
Старые мысли:
Ниже приведено небольшое приложение, которое только сокращает ваше ручное действие (кнопка) для отправки намерения по электронной почте.Это прекрасно работает для меня.Если это работает и для вас, то, возможно, ваш способ вызова метода «отправить намерение» с нажатой кнопки имеет некоторые странности.
package my.test;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Toast;
public class AndroidTestActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Toast.makeText(AndroidTestActivity.this, "Welcome toast", Toast.LENGTH_SHORT).show();
Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType("vnd.android.cursor.dir/email");
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{"bfdk@dgfsgfds.dfs"});
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Schedule Service Request");
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Message goes here");
startActivity(Intent.createChooser(emailIntent, "Please select Email Client"));
Toast.makeText(AndroidTestActivity.this, R.string.myString, Toast.LENGTH_SHORT).show();
}
@Override
protected void onPause() {
super.onPause();
finish();
Toast.makeText(getApplicationContext(), "Pause toast", Toast.LENGTH_SHORT).show();
}
@Override
protected void onDestroy() {
super.onDestroy();
Toast.makeText(this, "Destroy toast", Toast.LENGTH_SHORT).show();
}
}