BroadcastReceiver类中方法

构造函数

public  BroadcastReceiver   ()

公共方法

public final void abortBroadcast ()

设置标识,指示这个接收器应该终止当前的广播,仅适用于通过Context.sendOrderedBroadcast广播发送。可以防止其他广播接收器接受广播。BroadcastReceiver仍将调onReceive(Context, Intent)的调用者的Context.sendOrderedBroadcast传入。这个方法不能应用于non-ordered 广播例如Context.sendBroadcast发送


public final void clearAbortBroadcast ()

清空标识,指示这个接受者需要清空当前的广播

public final boolean getAbortBroadcast ()

返回的标识指示这个接受者是否需要结束当前的广播。

如果广播应该被终止返回True 

public final boolean getDebugUnregister ()

返回最后一个值给setDebugUnregister(boolean).

public final int getResultCode ()

作为先前的接收器检索当前结果码

返回值:int形的当前结果


public final String getResultData ()

作为先前的接收机检索当前的结果数据,经常为null

返回值:String类型的当前结果数据,可能为null

public final Bundle getResultExtras (boolean makeMap)

作为先前的接收器检索当前结果额外的数据。你做任何更改返回的Map 将传播到下一个接收器

参数:makeMap

true:如果当前的map为nul,你将创建一个空的mapl;

false:你需要准备好接收一个空map

返回值:当前临时的map


public final BroadcastReceiver.PendingResult goAsync ()

这可以在应用程序的onReceive(Context, Intent)方法中调用,允许函数返回后仍保持广播活跃 。这并不改变期望的广播相对响应(10 s完成),却允许实现活动相关工作在另一个线程,以避免故障由于磁盘IO主UI线程

返回值:返回一个 BroadcastReceiver.PendingResult 代表活跃广播的结果.广播接受者他自己不在活跃:所有数据和其他交互必须通过BroadcastReceiver.PendingResultAPI.  PendingResult.finish()必须调用一次处理完成播出


public final boolean isInitialStickyBroadcast ()

返回true:如果接收方目前处理粘性的初始值广播——也就是说,最后一次广播的价值,目前关押在粘性的缓存中,这是没有直接的结果现在广播。


public final boolean isOrderedBroadcast ()

返回true:如果接收方目前处理一个有序广播


public abstract void onReceive (Context context, Intent intent)

调用此方法接受一个意图广播。在此期间你可以用其他方法查看/修改当前的结果值。调用这个方法总是在主线程的过程,除非你明确要求它将在一个不同的线程使用registerReceiver(BroadcastReceiver IntentFilter,String,handler)。当它运行在主线程你永远不应该执行长时间运行的操作。

如果这个BroadcastReceiver推出<receiver>标记,那么对象不再是活着从这个函数返回后。这意味着你不应该执行任何操作,返回结果给你异步——特别是与服务进行交互,您应该使用由startService(Intent)而不是bindService(ServiceConnection,Intent,int)。如果你希望与正在运行的服务交互,可以使用peekService(Context,Intent)。

意图过滤器用于registerReceiver(BroadcastReceiver IntentFilter)和应用程序清单并不保证排斥。他们提示操作系统如何找到合适的人。发送方有可能迫使交付特定收件人,绕过过滤器决议。出于这个原因,onReceive()实现只要回应行动,无视任何意想不到的意图,他们可能会收到。

参数:

context:接收器正在运行的上下文

intent:收到的意图


    public IBinder peekService (Context myContext, Intent service)

提供了绑定到一个正在运行的服务。这种方法是同步的,也不会启动目标服务,如果它不存在,所以它是安全的电话onReceive(Context, Intent).

参数:

myContext:传递给 onReceive(Context, Intent)的上下文

service:意图表明你希望使用的服务。有关更多信息,请参见startService(Intent)


public final void setDebugUnregister (boolean debug)

控制夹杂物的调试帮助不匹配调用Context.registerReceiver()。如果使用真的,之前给registerReceiver(),然后callstack下列Context.unregisterReceiver()调用保留,印刷如果以后正确注销调用。请注意,这样做需要保留的信息BroadcastReceiver对于应用程序的生命周期,导致泄漏,这应该只用于调试。

public final void setOrderedHint (boolean isOrdered)

供内部使用,设置这个BroadcastReceiver提示是否在命令模式下运行。

public final void setResult (int code, String data, Bundle extras)

改变所有的返回结果数据从这个广播,仅适用于通过Context.sendOrderedBroadcast广播发送。当前所有结果数据值给该方法所取代。

 这种方法不使用non-ordered广播与Context.sendBroadcast比如发送

参数:

code:新的结果代码。经常使用活动RESULT_CANCELED和RESULT_OK常量,虽然这个值是最终的实际意义的。

data:新的结果数据。这是一个任意字符串,其解释是电视台的,可能是null。

extras:新的额外的数据地图。这是一个包持有任意数据的解释是播音员。可以设置为null。这完全替换当前地图(如果有的话)。

public final void setResultCode (int code)

改变当前的结果代码的广播,仅适用于通过Context.sendOrderedBroadcast广播发送。经常使用ActivityRESULT_CANCELED和RESULT_OK常量,虽然这个值是最终的实际意义的。

这种方法不使用non-ordered广播与Context.sendBroadcast比如发送

参数:code:新的结果码。

另参阅setResult(int, String, Bundle)

public final void setResultData (String data)

改变当前的结果数据的广播,仅适用于通过Context.sendOrderedBroadcast广播发送。这是一个任意字符串,其解释是播音员。

这种方法不使用non-ordered广播与Context.sendBroadcast比如发送

参数:data:新的结果码,可能为null。

另参阅setResult(int, String, Bundle)

public final void setResultExtras (Bundle extras)

额外的广播改变 当前的结果;仅适用于通过Context.sendOrderedBroadcast广播发送。这是一个包持有任意数据的解释是播音员。可以设置为null。调用该方法完全替换当前的地图(如果有的话)。

这种方法不使用non-ordered广播与Context.sendBroadcast比如发送

参数:extras:新的额外的数据map;可能是null

另参阅setResult(int, String, Bundle)

    原文作者:莫兰迪不会没有瓶子
    原文地址: https://blog.csdn.net/zhaoyazhi2129/article/details/40427749
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞