Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 广播接收机;getIntent()差异_Java_Android_Android Intent_Broadcast - Fatal编程技术网

Java 广播接收机;getIntent()差异

Java 广播接收机;getIntent()差异,java,android,android-intent,broadcast,Java,Android,Android Intent,Broadcast,这是一个愚蠢的问题。搜索后得到答案;) Android使用接收器的概念和“广播”意图的概念来帮助您从根本上监听手机上发生的某些动作。您可以实现一个接收器来监听您自己的意图,您可以在应用程序内部发送这些意图(即,可能对应用程序的某个数据集进行了更改,您希望将其广播给您的接收器,并让接收器做一些额外的工作),但同样,接收器通常用于收听由系统本身广播的意图 例如: 在Android清单中,定义一个新的接收者: } 因此,请注意,我们扩展了BroadcastReceiver类并覆盖了onReceive方

这是一个愚蠢的问题。搜索后得到答案;)

Android使用接收器的概念和
“广播”
意图的概念来帮助您从根本上监听手机上发生的某些动作。您可以实现一个接收器来监听您自己的意图,您可以在应用程序内部发送这些意图(即,可能对应用程序的某个数据集进行了更改,您希望将其广播给您的接收器,并让接收器做一些额外的工作),但同样,接收器通常用于收听由系统本身广播的意图

例如:

在Android清单中,定义一个新的接收者:

}

因此,请注意,我们扩展了
BroadcastReceiver
类并覆盖了
onReceive
方法。每当使用动作的意图
PHONE\u状态
被广播时,就会调用该方法,从中我们可以获得存储在
intent
中的额外信息并对其进行处理。请注意,在这种情况下ction extra是“状态”,这里的状态将是“振铃”、“摘机”或“空闲”

我希望你现在就明白了。

getIntent()
用于获取启动
活动的
意图
。对于
活动
,并不总是需要知道是哪个
意图
启动了他。因为例如,从
启动器
启动的
startActivity
没有什么特别之处。 只有当一个
活动
想要做一些特别的事情时,他才想明确地知道它。比如“创建电子邮件”,而不是去邮件应用程序

请记住,只有1
Intent
可以启动1
活动

BroadcastReceiver
是在一个或多个
Intent
上注册自己的组件。如果通过
sendBroadcast
发送/广播该
BroadcastReceiver
,则该
BroadcastReceiver
将启动。因此
BroadcastReceiver
总是想知道是哪个
Intent
启动了他,
WIFI\u已连接
,或类似。据我所知,这就是为什么与只有
getIntent()
活动相比,
onReceive
上有一个参数的原因(如果我错了,请纠正我)


请记住,只发送了1个
Intent
,并且可以启动0个或多个
BroadcastReceiver
。(所有注册的人都已启动)

您是否至少阅读了
BroadcastReceiver
的文档以及
getIntent()的内容
是吗?当你对两者的用法感到困惑时,需要区分两者。你对它们的用法了解多少?写下让你困惑的要点。@luks yep我读过。这就是让我困惑的原因!sanjeev见下文。你的问题完全不清楚,就像让我们解释两者之间的区别一样n一只狗和一辆车。请仔细阅读BroadcastReceiver文档,找到一些关于它们使用的教程,以了解它们的用途。@NamanArora:我认为
BroadcastReceiver
Apple
getIntent()
pizza
太棒了!非常简单,切中要害!谢谢!
<receiver android:name=".receivers.PhoneIntentReceiver" android:enabled="true">
<intent-filter>
    <action android:name="android.intent.action.PHONE_STATE"></action>
</intent-filter>
</receiver>
  public class PhoneIntentReceiver extends BroadcastReceiver {   
    @Override   
    public void onReceive(Context context, Intent intent) {   
  //get the data from the passed intent   
  //this is the intent that was broadcasted by the system   
  Bundle bundle = intent.getExtras();    
  String phoneState = bundle.getString("state");
  String phoneNumber = bundle.getString("incoming_number");
  //perform operations using phoneState data
}