Intent sendIntent = new Intent(Intent.ACTION_VIEW);
sendIntent.setType("plain/text");
sendIntent.setData(Uri.parse("test@gmail.com"));
sendIntent.setClassName("com.google.android.gm", "com.google.android.gm.ComposeActivityGmail");
sendIntent.putExtra(Intent.EXTRA_EMAIL, new String[] { "test@gmail.com" });
sendIntent.putExtra(Intent.EXTRA_SUBJECT, "test");
sendIntent.putExtra(Intent.EXTRA_TEXT, "hello. this is a message sent from my demo app :-)");
startActivity(sendIntent);
在上面的代码中,我很困惑为什么我们必须在ACTION_VIEW
定义中指定操作:sendIntent
?我们已经指定我们要使用sendIntent
意图开始的活动是"com.google.android.gm", "com.google.android.gm.ComposeActivityGmail"
活动。
我认为动作ACTION_VIEW
的唯一目的是,如果您正在制作一个隐含的意图,并且您希望系统显示用户下载的具有Activity
的所有应用程序执行动作ACTION_VIEW
?
但是在这种情况下,我们已经指定了我们要启动哪个活动ComposeActivityGmail
,那么为什么要放置ACTION_CLOSE
操作,因为系统已经为此意图启动了哪个活动。
答案 0 :(得分:1)
您可以使用以下代码开始其他活动:
Intent intent = new Intent(this, Classname.class);
startService(intent);
如果您有一些活动可以向用户显示的信息,例如要在图库应用中查看的照片,或者要在地图应用中查看的地址,则ACTION_VIEW
与startActivity()
一起使用
在您的情况下,您传递的是电子邮件地址,这就是您必须使用它的原因。