android中sendBroadcast方法问题

问题描述

android中sendBroadcast方法问题

sendBroadcast这个方法的参数是什么,参数类型是什么,方法体有多少行代码,要指定返回值类型吗

解决方案

BroadCastReceiver 的 API
abortBroadcast ():
这个方法可以截获由 sendOrderedBroadcast () 发送来的 广播,让其它广播接收者无法收到这个广播。

clearAbortBroadcast ()
这个方法是针对上面的 abortBroadcast() 方法的,用于取消截获广播。这样它的下一级广播接收者就能够收到该广播了。

getAbortBroadcast ()
这个方法作用是:判断是否调用了 abortBroadcast (),如果先调用 abortBroadcast (),接着再调用 getAbortBroadcast (),将返回 true; 如果在调用 abortBroadcast() 、 clearAbortBroadcast ()

getAbortBroadcast (),将返回 false;

public final boolean getDebugUnregister ()
Since: API Level 1

Return the last value given to setDebugUnregister(boolean) .

getResultCode ()
如果用下面四个方法发送得广播,返回码为: -1 ;

// sendBroadcast(intent);

// sendBroadcast(intent, receiverPermission);

// sendOrderedBroadcast(intent, receiverPermission);

// sendStickyBroadcast(intent);

如果用下面两个方法发送得广播,返回码为:根据你设置 initialCode 的数字是多少就是多少;

// sendStickyOrderedBroadcast(intent, resultReceiver, scheduler,

// initialCode, initialData, initialExtras)

// sendOrderedBroadcast(intent, receiverPermission, resultReceiver,

// scheduler, initialCode, initialData, initialExtras)

getResultData ()
得到发送广播时设置的 initialData 的数据;

getResultExtras (boolean makeMap)
If true then a new empty Map will be made for you if the current Map is null; if false you should be prepared to receive a null Map.

得到由

sendStickyOrderedBroadcast(intent, resultReceiver, scheduler,

// initialCode, initialData, initialExtras) ;

// sendOrderedBroadcast(intent, receiverPermission, resultReceiver,

// scheduler, initialCode, initialData, initialExtras)

中 initialExtras 传入的参数。

实验:我用上面两个方法发了 initialExtras (这个一个 Bundle )传入的参数时,只要不为空,那么 makeMap 是否为 true 和 false 都能够得到数据。

isInitialStickyBroadcast ()
Returns true if the receiver is currently processing the initial value of a sticky broadcast -- that is, the value that was last broadcast and is currently held in the sticky cache, so this is not directly the result of a broadcast right now.

如果广播接收者是目前处理的一个宿主的广播的初始值,将返回 true , - 也就是说,这个值是最后的广播出的值,目前正在举行的宿主缓存,所以这并不是直接导致了现在的广播。

实验:在第三个应用中调用这个方法,无论你用哪种方式发送广播,这个方法得到的总是 false ;在发送广播 的 resultReceiver 广播接收者里面调用,得到的也是 false ;

isOrderedBroadcast ()
sendStickyOrderedBroadcast(intent, resultReceiver, scheduler,

initialCode, initialData, initialExtras)

上面这个方法发送时,得到的是 true;

判断是否是有序广播;

onReceive (Context context, Intent intent)

public IBinder peekService (Context myContext, Intent service)
Provide a binder to an already-running service. This method is synchronous and will not start the target service if it is not present, so it is safe to call from onReceive.

Parameters:

myContext The Context that had been passed to onReceive(Context, Intent)

service The Intent indicating the service you wish to use. See Context.startService(Intent) for more information.

setDebugUnregister (boolean debug)

解决方案二:

BroadCastReceiver 的 API
abortBroadcast ():
这个方法可以截获由 sendOrderedBroadcast () 发送来的 广播,让其它广播接收者无法收到这个广播。

clearAbortBroadcast ()
这个方法是针对上面的 abortBroadcast() 方法的,用于取消截获广播。这样它的下一级广播接收者就能够收到该广播了。

getAbortBroadcast ()
这个方法作用是:判断是否调用了 abortBroadcast (),如果先调用 abortBroadcast (),接着再调用 getAbortBroadcast (),将返回 true; 如果在调用 abortBroadcast() 、 clearAbortBroadcast ()

getAbortBroadcast (),将返回 false;

public final boolean getDebugUnregister ()
Since: API Level 1

Return the last value given to setDebugUnregister(boolean) .

getResultCode ()
如果用下面四个方法发送得广播,返回码为: -1 ;

// sendBroadcast(intent);

// sendBroadcast(intent, receiverPermission);

// sendOrderedBroadcast(intent, receiverPermission);

// sendStickyBroadcast(intent);

如果用下面两个方法发送得广播,返回码为:根据你设置 initialCode 的数字是多少就是多少;

// sendStickyOrderedBroadcast(intent, resultReceiver, scheduler,

// initialCode, initialData, initialExtras)

// sendOrderedBroadcast(intent, receiverPermission, resultReceiver,

// scheduler, initialCode, initialData, initialExtras)

getResultData ()
得到发送广播时设置的 initialData 的数据;

getResultExtras (boolean makeMap)
If true then a new empty Map will be made for you if the current Map is null; if false you should be prepared to receive a null Map.

得到由

sendStickyOrderedBroadcast(intent, resultReceiver, scheduler,

// initialCode, initialData, initialExtras) ;

// sendOrderedBroadcast(intent, receiverPermission, resultReceiver,

// scheduler, initialCode, initialData, initialExtras)

中 initialExtras 传入的参数。

实验:我用上面两个方法发了 initialExtras (这个一个 Bundle )传入的参数时,只要不为空,那么 makeMap 是否为 true 和 false 都能够得到数据。

isInitialStickyBroadcast ()
Returns true if the receiver is currently processing the initial value of a sticky broadcast -- that is, the value that was last broadcast and is currently held in the sticky cache, so this is not directly the result of a broadcast right now.

如果广播接收者是目前处理的一个宿主的广播的初始值,将返回 true , - 也就是说,这个值是最后的广播出的值,目前正在举行的宿主缓存,所以这并不是直接导致了现在的广播。

实验:在第三个应用中调用这个方法,无论你用哪种方式发送广播,这个方法得到的总是 false ;在发送广播 的 resultReceiver 广播接收者里面调用,得到的也是 false ;

isOrderedBroadcast ()
sendStickyOrderedBroadcast(intent, resultReceiver, scheduler,

initialCode, initialData, initialExtras)

上面这个方法发送时,得到的是 true;

判断是否是有序广播;

onReceive (Context context, Intent intent)

public IBinder peekService (Context myContext, Intent service)
Provide a binder to an already-running service. This method is synchronous and will not start the target service if it is not present, so it is safe to call from onReceive.

Parameters:

myContext The Context that had been passed to onReceive(Context, Intent)

service The Intent indicating the service you wish to use. See Context.startService(Intent) for more information.

setDebugUnregister (boolean debug)

解决方案三:

需要intent,里面包含action的名字,,和你要传输的数据

解决方案四:

android蓝牙连接createRfcommSocketToServiceRecord方法抛出异常问题
Android使用HttpClient方法和易错问题
Android Studio常见问题解决方法

时间: 2024-09-13 14:50:57

android中sendBroadcast方法问题的相关文章

android中setVisibility()方法失效了

问题描述 android中setVisibility()方法失效了 在viewpager中嵌入fragment,然后通过菜单键改变布局,调用setVisibility()方法的时候无效,百度一下看到有人说调用clearAnimation()能解决,试了下,还是不行...菜鸟求解释... 解决方案 android view的setVisibility方法值的意思android view的setVisibility方法值的意思android view的setVisibility方法值的意思 解决方案

java-关于android中onCreat方法问题

问题描述 关于android中onCreat方法问题 子类重写onCreat方法之后为什么还要 强行调用父类的onCreat方法,有人分析说是现场保护问题,那么如何理解现场保护问题呢 解决方案 onCreate()里面是有一个参数的. 当你的activity由于内存不足等原因被回收的时候,你可以在onsaveinstance()方法里面进行保存一些控件的状态. 这样当你重新打开activity的时候,也就是重新创建的时候.可以通过onCreate方法里的这个对象获取这些状态来进行数据的恢复~ 解

详解Android中Drawable方法_Android

本文为大家分享了Android中Drawable方法的详细使用方法,供大家参考,具体内容如下 1. BitmapDrawable相关方法: 新建在drawable目录下面,示例如下: <bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:antialias="true" android:dither="true" android:filter=&

android中findViewById方法参数问题

问题描述 android中findViewById方法参数问题 android中findViewById( R.id.myLayout); 这个方法参数的数据类型是什么,为什么省略了数据类型的声明,路径是什么,谢谢解答 解决方案 int 类型 public View findViewById(@IdRes int id) { return getDecorView().findViewById(id); } 各种资源都会在R文件中定义, 有R.id.xxx 引用在XML中定义了控件ID的 R.l

数据-java中android中onTouchEvent方法的问题详解,谢谢解答!

问题描述 java中android中onTouchEvent方法的问题详解,谢谢解答! public boolean onTouchEvent(MotionEvent event) { //调用warp方法根据触摸屏事件的座标点来扭曲verts数组 warp(event.getX(), event.getY()); return true; } //MotionEvent event这两个哪个是数据类型,哪个是数值 //event.getX(), event.getY() 返回的是什么值是什么数

android中BlurMaskFilter方法问题

问题描述 android中BlurMaskFilter方法问题 BlurMaskFilter(10f,BlurMaskFilter.Blur.NORMAL): 此方法为什么参数数值写在前面,10f是一个浮点数,那么这个浮点数的取值范围是什么 BlurMaskFilter.Blur.NORMAL是 方法.属性.属性取值,这么理解对吗 解决方案 第一个参数是半径,大于0就行,第二个参数有三种 NORMAL(0), //!< blur inside and outside of the origina

详解Android中Drawable方法

本文为大家分享了Android中Drawable方法的详细使用方法,供大家参考,具体内容如下 1. BitmapDrawable相关方法: 新建在drawable目录下面,示例如下: <bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:antialias="true" android:dither="true" android:filter=&

eclipse-在android中重写方法有没有快捷键?

问题描述 在android中重写方法有没有快捷键? 环境:Eclipse,android的框架类中,一般重写一个Activity中的方法需要通过下面的方法: 打开Source->Override/Implement Methods->croll list,check box,然后点击OK. 有没有快捷键可以省去这么麻烦的步骤? 解决方案 Alt+Shift+S, V 所有的键盘快捷键都可以在config中找到.

callback-android中dispatchTouchEvent方法里为什么不能用toast显示信息?

问题描述 android中dispatchTouchEvent方法里为什么不能用toast显示信息? 是在一个自定义轮滑的viewpager里的dispatchTouchEvent里写的toast. public boolean dispatchTouchEvent(MotionEvent ev) { switch (ev.getAction()) { case MotionEvent.ACTION_DOWN: stopScroll(); break; case MotionEvent.ACTI