当前位置: 首页 > 知识库问答 >
问题:

setAction()对意图(广播)有什么作用

尹臻
2023-03-14

setAction()在intent(服务)中做什么

我并不真正理解setAction()的功能,我主要是在“服务到活动的数据传递”示例中找到它的。这根绳子可以自由设置吗?。它到底做什么?

创建广播意图时,除了可选数据和类别字符串之外,它还必须包括一个ACTION STRING。与标准意图一样,数据是使用键值对与意图对象的putExtra()方法一起添加到广播意图中的。可选的类别字符串可以通过调用addType()方法分配给广播意图。

标识广播事件的操作字符串必须是唯一的,并且通常使用应用程序的Java包名称语法。例如,以下代码片段创建并发送一个广播意图,包括一个唯一的动作字符串和数据:

 Intent intent = new Intent();
intent.setAction("com.example.Broadcast");
intent.putExtra("HighScore", 1000); sendBroadcast(intent);

我看到的另一个变化是:

 Intent broadcastIntent = new Intent();

            broadcastIntent.setAction("com.truiton.broadcast.string");
            broadcastIntent.putExtra("Data", "Broadcast Data");
            sendBroadcast(broadcastIntent);

            try {
               Thread.sleep(1000);
            } catch (InterruptedException e) {
               e.printStackTrace();
            }
            broadcastIntent.setAction("com.truiton.broadcast.integer");
            broadcastIntent.putExtra("Data", 10);
            sendBroadcast(broadcastIntent);

            try {
               Thread.sleep(1000);
            } catch (InterruptedException e) {
               e.printStackTrace();
            }
            broadcastIntent .setAction("com.truiton.broadcast.arraylist");
            broadcastIntent.putExtra("Data", mList);
            sendBroadcast(broadcastIntent);

这看起来更像是识别传入的数据类型。

这是否意味着识别事件、传入数据类型、操作或每个意图创建?它能被释放吗?

共有1个答案

柴禄
2023-03-14

使用

它们通常用于广播接收机。

以下是一个xml示例

<receiver android:name="MyReceiver" >
            <intent-filter>
                <action android:name="com.example.SendBroadcast" >
                </action>
<action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" >          
                </action>
            </intent-filter>
        </receiver>

但是,当您希望BroadCastRecector以编程方式注册和注销时,可以使用setAction()。

Intent intent = new Intent();
          intent.setAction("com.example.SendBroadcast");
          intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
          sendBroadcast(intent);

欲了解更多信息,请查看:http://www.techotopia.com/index.php/Android_Broadcast_Intents_and_Broadcast_Receivers

 类似资料:
  • 当我收到一条消息,我正在用谷歌服务从我的桌面发送到我的Android系统时,我正在用谷歌服务进行广播,在广播后,我的应用程序崩溃了,我的日志被切断了 我的GCM服务类公共类GCMIntentService扩展了GCMBaseIntentService{ 我的显示消息函数公共静态无效displayMessage(上下文,字符串消息){Intent意图=new Intent(DISPLAY_MESSA

  • DALVIK线程:(互斥:TLL=0 TSL=0 TSCL=0 GHL=0) 后台进程prio=5 tid=15 WAIT group=“main”scount=1 dscount=0 obj=0x4216e7e0 self=0x400b6a18 systid=24414 nice=0 sched=0/0 cgrp=apps handle=1074723664 state=s schedstat=

  • 我的android Vitals中有一些ANR: 意图广播{act=Android.Intent.Action.Screen_On flg=0x50200010(有附加内容)}或 广播意图{act=Android.Intent.Action.Screen_On flg=0x50000010}。 我也有一些ANR: 意图广播{act=Android.Intent.Action.Screen_off

  • 问题内容: io.sockets.emit和socket.broadcast.emit有什么区别?广播只是向所有人发出但发送它的套接字吗? 似乎它们可以互换使用: 问题答案: 将发送给所有客户 会将消息发送给除新建连接以外的所有其他客户端 这篇Socket.IO Wiki帖子将帮助所有人阅读以下问题:

  • 本文向大家介绍JQuery中$(document)是什么意思有什么作用,包括了JQuery中$(document)是什么意思有什么作用的使用技巧和注意事项,需要的朋友参考一下 首先我解释一下jQuery jQuery有一个用来作为DOM快速载入javascript的得心应手的小函数,那就是ready… 他在页面加载完成之前执行。 为什么不用window.onload(),因为window.onlo

  • 声明(AndroidMANIFEST.xml)一个广播接收器: 让我困惑的是通过adb shell调用意图的结果: A)匹配动作