startActivity()和sendBroadcast()的区别是啥???

时间:2022-04-14 22:39:10
startActivity()已经可以实现启动另一个activity的效果,那为啥还存在一个sendBroadcast()???
这两个啥区别???求大神解答 startActivity()和sendBroadcast()的区别是啥???

11 个解决方案

#1


sendBroadcast是发送广播,跟启动Activity有什么关联

#2


贴代码,看不懂你说的

#3


从功能上讲,sendBroadcast也可以启动activity,不过需要设置newTask,实际用这种方法启动activity的不多。
从语义上说,broadcast更多的是用来监听一些事件,然后做一些处理。启动activity也算是处理的一种。

#4


引用 楼主 hao2244 的回复:
startActivity()已经可以实现启动另一个activity的效果,那为啥还存在一个sendBroadcast()???
这两个啥区别???求大神解答 startActivity()和sendBroadcast()的区别是啥???
其實我想反問樓主這2個有什麼關聯?

#5


两个的作用完全不一样啊,一个是跳转界面,一个是处理事件分发,设计他们的目的不同

#6


楼主的意思我懂。同是小菜的我同病相怜啊,你们这些大神能否宽容点。
startactivity(intent),sendbroadcast(intent),这两个intent前一个是显式Intent,后一个是隐式Intent,在显式Intent消息中,决定目标组件的唯一要素就是组件名称,因此,如果你的Intent中已经明确定义了目标组件的名称,那么你就完全不用再定义其他Intent内容。直接指定activity的名称就行了,所以就用startactivity,多用于在应用程序内部传递消息;而对于隐式Intent则不同,由于没有明确的目标组件名称,所以必须由Android系统帮助应用程序寻找与Intent请求意图最匹配的组件。Android系统寻找与Intent请求意图最匹配的组件具体的选择方法 是:Android将Intent的请求内容和一个叫做IntentFilter的过滤器比较,IntentFilter中包含系统中所有可能的待选组件,通过sendbroadcast的方式,它更广泛地用于在不同应用程序之间传递消息。

#7


没啥关系,楼主基础问题比较大

#8


startactivity也可以通过传入一个隐式Intent的方式来启动一个activity,这种方式就不需要broadcastreceiver了;如果用sendbroadcast的方式想启动一个activity,似乎不行,sendbroadcast要求有能够监听广播的broadcastreceiver,重写这个broadcastreceiver的onreceive函数,里面可以写一些操作,在这个onreceive函数再用startactivity启动activity应该可以,不过这就多此一举了

#9


broadcast可监听响应,调用activity,也就这么个关系.

#10


我刚入手Android,求大神饶命 startActivity()和sendBroadcast()的区别是啥???

#11


引用 6 楼 u011209376 的回复:
楼主的意思我懂。同是小菜的我同病相怜啊,你们这些大神能否宽容点。
startactivity(intent),sendbroadcast(intent),这两个intent前一个是显式Intent,后一个是隐式Intent,在显式Intent消息中,决定目标组件的唯一要素就是组件名称,因此,如果你的Intent中已经明确定义了目标组件的名称,那么你就完全不用再定义其他Intent内容。直接指定activity的名称就行了,所以就用startactivity,多用于在应用程序内部传递消息;而对于隐式Intent则不同,由于没有明确的目标组件名称,所以必须由Android系统帮助应用程序寻找与Intent请求意图最匹配的组件。Android系统寻找与Intent请求意图最匹配的组件具体的选择方法 是:Android将Intent的请求内容和一个叫做IntentFilter的过滤器比较,IntentFilter中包含系统中所有可能的待选组件,通过sendbroadcast的方式,它更广泛地用于在不同应用程序之间传递消息。
正解!!!!!!!!!!!!!!

#1


sendBroadcast是发送广播,跟启动Activity有什么关联

#2


贴代码,看不懂你说的

#3


从功能上讲,sendBroadcast也可以启动activity,不过需要设置newTask,实际用这种方法启动activity的不多。
从语义上说,broadcast更多的是用来监听一些事件,然后做一些处理。启动activity也算是处理的一种。

#4


引用 楼主 hao2244 的回复:
startActivity()已经可以实现启动另一个activity的效果,那为啥还存在一个sendBroadcast()???
这两个啥区别???求大神解答 startActivity()和sendBroadcast()的区别是啥???
其實我想反問樓主這2個有什麼關聯?

#5


两个的作用完全不一样啊,一个是跳转界面,一个是处理事件分发,设计他们的目的不同

#6


楼主的意思我懂。同是小菜的我同病相怜啊,你们这些大神能否宽容点。
startactivity(intent),sendbroadcast(intent),这两个intent前一个是显式Intent,后一个是隐式Intent,在显式Intent消息中,决定目标组件的唯一要素就是组件名称,因此,如果你的Intent中已经明确定义了目标组件的名称,那么你就完全不用再定义其他Intent内容。直接指定activity的名称就行了,所以就用startactivity,多用于在应用程序内部传递消息;而对于隐式Intent则不同,由于没有明确的目标组件名称,所以必须由Android系统帮助应用程序寻找与Intent请求意图最匹配的组件。Android系统寻找与Intent请求意图最匹配的组件具体的选择方法 是:Android将Intent的请求内容和一个叫做IntentFilter的过滤器比较,IntentFilter中包含系统中所有可能的待选组件,通过sendbroadcast的方式,它更广泛地用于在不同应用程序之间传递消息。

#7


没啥关系,楼主基础问题比较大

#8


startactivity也可以通过传入一个隐式Intent的方式来启动一个activity,这种方式就不需要broadcastreceiver了;如果用sendbroadcast的方式想启动一个activity,似乎不行,sendbroadcast要求有能够监听广播的broadcastreceiver,重写这个broadcastreceiver的onreceive函数,里面可以写一些操作,在这个onreceive函数再用startactivity启动activity应该可以,不过这就多此一举了

#9


broadcast可监听响应,调用activity,也就这么个关系.

#10


我刚入手Android,求大神饶命 startActivity()和sendBroadcast()的区别是啥???

#11


引用 6 楼 u011209376 的回复:
楼主的意思我懂。同是小菜的我同病相怜啊,你们这些大神能否宽容点。
startactivity(intent),sendbroadcast(intent),这两个intent前一个是显式Intent,后一个是隐式Intent,在显式Intent消息中,决定目标组件的唯一要素就是组件名称,因此,如果你的Intent中已经明确定义了目标组件的名称,那么你就完全不用再定义其他Intent内容。直接指定activity的名称就行了,所以就用startactivity,多用于在应用程序内部传递消息;而对于隐式Intent则不同,由于没有明确的目标组件名称,所以必须由Android系统帮助应用程序寻找与Intent请求意图最匹配的组件。Android系统寻找与Intent请求意图最匹配的组件具体的选择方法 是:Android将Intent的请求内容和一个叫做IntentFilter的过滤器比较,IntentFilter中包含系统中所有可能的待选组件,通过sendbroadcast的方式,它更广泛地用于在不同应用程序之间传递消息。
正解!!!!!!!!!!!!!!