Java Android隐式和显式意图
何时使用隐式意图与显式意图 对于这一隐含意图: 意向搜索意向=新意向()Java Android隐式和显式意图,java,android,Java,Android,何时使用隐式意图与显式意图 对于这一隐含意图: 意向搜索意向=新意向() searchintent.setAction(Intent.ACTION\u视图) searchintent.setData(Uri.parse(“http://www.google.com")) startActivity(searchintent) 我将如何设置另一个操作,以及如何将setData与Uri参数以外的其他对象一起使用 我只是想大致理解这两种意图 谢谢如果您需要完成的操作可以由多种应用程序完成,或者不是您的
searchintent.setAction(Intent.ACTION\u视图) searchintent.setData(Uri.parse(“http://www.google.com")) startActivity(searchintent) 我将如何设置另一个操作,以及如何将setData与Uri参数以外的其他对象一起使用 我只是想大致理解这两种意图
谢谢如果您需要完成的操作可以由多种应用程序完成,或者不是您的应用程序完成,您可以使用隐式意图。例如,条形码扫描、联系人挑选、短信/电子邮件等
当您想要控制处理意图的活动时(即,为什么要将类定义传递给意图),应该使用显式意图用法。隐式意图是指您想要执行某个操作,但不知道用户当前必须处理该操作的应用程序。 例如,发送电子邮件时,有许多应用程序,因此用户可以选择要使用的应用程序 如果您有mainactivity和secondActivity,并且希望启动称为显式意图的第二个活动,则显式意图用于启动应用程序中的活动
StartActivity(new Intent(getBaseContext(), secondActivity.class));
您可以在活动之间传递数据,方法是向正在传递的包中添加额外的内容
Intent i = new Intent(getBaseContext, secondActivity.class);
i.putExtra("key",value);
startActivity(i);
要想在第二次活动中获得额外服务,只需拨打电话:
getIntent().getStringExtra("key");
或者,如果您只想获取传递的“数据”uri,则可以调用
getIntent().getData();
额外的可以是例如int/double/String或可分配对象
意图只是对其他活动的调用。 每个活动都以以下方式处理此调用(与您的一样): 1) 在OnCreate()方法中,活动正在寻找有效的操作(如在调用“action\u视图”中)。如果该操作有效且可由该活动调用,则会调用该活动中的函数并“回答”您的请求。(使用“startActivityForResult”调用时) 2) 将数据设置为意图:如果调用的操作需要一些参数,则需要这样做。 这个参数可以是很多类型,例如,它可以是字符串或整数。您可以将这类数据捆绑在一个“捆绑包”中,并将其放入您的意图中。 如果可能的话,具有指定操作和数据的被调用活动将处理所有这些操作和数据, 否则它会抛出一个错误 在代码示例中,调用打开浏览器的活动(因为android系统知道如何使用URL参数处理“ACTION_VIEW”,这是系统默认行为) 由底层android系统定义 如果您编写自己的活动,您可以将公共变量定义为“action”,并可以在OnCreate方法中处理它,甚至可以使用所需的参数