上下文对象是什么意思,在调用intent方法时,要传入一个上下文对象,到底...
发布网友
发布时间:2022-04-26 10:12
我来回答
共2个回答
热心网友
时间:2022-04-23 01:29
Intent可以翻译为意图,它负责对应用中操作的动作及动作所涉及的数据进行描述,Android根据Intent的描述,找到相应的组件,将这个Intent传递给调用的组件,从而完成组件的调用。一个Intent对象其实就是信息的*,它包含了接收该Intent的组件所需要的信息。通常,Intent对象包括如下的一些属性:
l 组件名称(ComponentName)
组件名称即为ComponentName对象,该对象包含了目标组件的类名和所属包名。组件名称是可选的,如果设定了的话,Intent对象会被传给指定类的一个实例。如果不设定,则Android使用其他信息来定位合适的目标。组件名称是使用setComponent(),setClass()或setClassName()来设定,使用getComponent()来获取。
l 动作(Action)
动作即为Intent要采取的行动。用一个字符串表示,Android提供了很多自带的动作,可以浏览网页、发送短信等,也可以自己定义Intent动作,要注意的是,要养成良好的习惯,用Java包名的命名方式来命名,因为系统要求动作名是独一无二的。
l 数据(Data)
即为动作要操作的数据,Android中使用URI的方式来指定一个数据。例如,如果Action为ACTION_EDIT,那么Data将包含待编辑的数据URI。如果Action为ACTION_CALL,Data将为tel:电话号码的URI。如果Action为ACTION_VIEW,则Data为http:网络地址的URI。
l 类别(Category)
即为执行动作的附加信息。举几个例子,LAUNCHER_CATEGORY表示Intent的接收者应该作为顶级的launcher。LAUNCHER_CATEGORY表示当前的Intent是多个可选Intent动作中的一个。
l 数据类型(Type)
显示指定Intent的数据类型(MIME)。一般Intent的数据类型能够根据数据本身进行判定,但是通过设置这个属性,可以强制采用显示指定的类型。
l 附加信息(Extras)
使用Extras可以为组件提供扩展信息,例如,如果要执行“发送电子邮件”这个动作,可以将电子邮件的标题、正文等保存在extras里,传给电子邮件发送组件。
通过Intent对象的这些属性,Intent即可对一次组件通信的动作、动作涉及的数据以及附加信息进行描述,Android系统则根据此Intent的描述,负责找到对应的组件,将Intent传递给该组件,并完成组件的调用。
热心网友
时间:2022-04-23 02:47
上下文就是Context,上下文对象可以是Activity或者Application实例。
Intent newIntent = new Intent(context, MainActivity.class);
newIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(newIntent);
如果是在Activity的成员方法中,可以直接用this代替context。追问还是不懂,如果后面不是this的话,该写什么,