2 fengwuwuhen fengwuwuhen 于 2013.04.17 16:40 提问

JAR中注册BroadcastReceiver问题

我的BroadcastReceiver类名是net.push.MyReceiver,
在JAR的Mainfest里这样

<receiver android:name="net.push.MyReceiver" >
            <intent-filter>
                <action android:name="MyReceiver_Action" />
            </intent-filter>
        </receiver>

注册的BroadcastReceiver,Receiver没有办法接收广播.在引用这个JAR的项目的Mainfest里这样注册

     <receiver android:name="net.push.MyReceiver" >
            <intent-filter>
                <action android:name="MyReceiver_Action" />
            </intent-filter>
        </receiver>

就可以接收到广播
如何才能在JAR的mianfest里注册才能接收到广播

3个回答

usniyo
usniyo   2013.04.18 09:18

一个Android应用只有一个Mainfest文件,它只认那一个的,其它地方的它才不鸟呢。你想要在jar包里放一个Mainfest文件实现注册是不行的,除非你用java代码方式注册广播接收器。

loFataMer
loFataMer   2013.04.18 11:04

AndroidManifest.xml 是指定给一个应用,而不是一个jar。如果你想要接收成功,需要将声明放进应用Mainfest中,位于应用程序文件的根目录中。

Every application must have an AndroidManifest.xml file (with precisely that name) in its root directory

看这里:http://developer.android.com/guide/topics/manifest/manifest-intro.html

cjiiing
cjiiing   2013.04.18 14:02

前提是你的jar里有Activity或者Service,然后在它的Onstart和onResume方法里分别调用registerReciever和unRegisterReciever方法来动态注册广播

cjiiing
cjiiing 在manifest里面是不可能或者说很难,除非你改它的apk包,但是那样签名就不一致了,如果你很牛,会走后门那就另当别论
大约 5 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Android注册BroadcastReceiver的两种办法及其区别
前两篇文章中,对于注册广播机制全部使用的是 AndroidMainFest.xml 注册的,同时,我们还可以在代码中实现注册,这里分别记录了两种方法的使用1、使用 XML 注册&lt;receiver android:name=".MyBroadcastReceiver" &gt
Android:在AndroidManifest中注册BroadcastReceiver的权限问题
Android中,注册BroadcastReceiver(广播)有两种方式: 1.zai dai ma zhong|zhuce
android broadcastreceiver 重复创建和无法接受消息问题
今天碰到了一个问题 就是使用广播做一个全局弹窗的重复弹窗问题 特此记录一下 填个坑 第一 说一下使用广播做一个全局弹窗问题 首先是注册广播 我使用的是动态注册 (细节就不都说了) 设置高优先级 尽量做到保活 这里说一下第一个要注意的地方 就是广播注册问题 重复注册 我的方法是 在注册前 先判断一下是否存在 如果存在就返回 如果不存在就new 一个 (也可以使用单例去控制一下)我就遇到了重复创建
BroadcastReceiver的两种注册方式
BroadcastReceiver有两种注册方式:静态注册和动态注册。 一,静态注册:在Manifest中进行注册(注意在使用BroadcastReceiver继承与Receiver时不要忘了在manifest中声明receiver)             android:name="lsw.example.broadercast.CustomReceiver">          
安卓中BroadcastReceiver 注册的两种方式
API中的介绍: You can either dynamically register an instance of this class with Context.registerReceiver() or statically publish an implementation through the tag in your AndroidManifest.xml.翻译过来就是注册一个Br
Android中BroadcastReceiver的两种注册方式(静态和动态)详解
今天我们一起来探讨下安卓中BroadcastReceiver组件以及详细分析下它的两种注册方式。 BroadcastReceiver也就是“广播接收者”的意思,顾名思义,它就是用来接收来自系统和应用中的广播。在Android系统中,广播体现在方方面面,例如当开机完成后系统会产生一条广播,接收到这条广播就能实现开机启动服务的功能;当网络状态改变时系统会产生一条广播,接收到这条广播就能及时地做出提示
Service (在Service中注册BroadcastReceiver)
Service (在Service中注册BroadcastReceiver)注册广播接收者的服务类public class MyService extends Service { private ScreenReceiver receiver; @Override public IBinder onBind(Intent intent) { return null
Android中Broadcast Receiver的两种注册方法和区别
broadcast receiver:用以监听系统或用户程序broadcast的Intent,它本质上是系统的一种全局监听器(与onXxxxListener相似但不同),只要存在与之匹配的Intent被广播出来,BroadcastReceiver就会被激活,所以BroadcastReceiver与具有完整生命周期的Activity或Service不同(广播接收者只有一个生命周期回调函数onRece
【问题汇总】BroadcastReceiver静态内部类注册的问题
正常情况下,静态注册广播使用如下方式: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com.bn.ex2_1"> <application android:icon="@drawa
BroadcastReceiver注册方式
BroadcastReceiver注册方式 1静态注册 AndroidManifest.xml中,application里面,定义receiver并设置要接收的action receiverandroid:name="com.example.mtc_ly_myweather.Broadcast.MyBroadcast"> intent-filter> actionandroid:name