Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.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
Android 将广播从一个apk/包发送到另一个apk/包_Android_Package_Broadcast - Fatal编程技术网

Android 将广播从一个apk/包发送到另一个apk/包

Android 将广播从一个apk/包发送到另一个apk/包,android,package,broadcast,Android,Package,Broadcast,我需要将广播从一个应用程序发送到另一个应用程序。。任何帮助! 我的应用程序包是1)com.demo.database和2)com.demo.list Intent themesIntent = new Intent(ThemesManager.THEMES_UPDATED); themesIntent.putExtra("package", packageName); ctx.sendBroadcast(themesIntent); 不工作 编辑: <receiver androi

我需要将广播从一个应用程序发送到另一个应用程序。。任何帮助! 我的应用程序包是1)com.demo.database和2)com.demo.list

 Intent themesIntent = new Intent(ThemesManager.THEMES_UPDATED);
 themesIntent.putExtra("package", packageName);
 ctx.sendBroadcast(themesIntent);
不工作

编辑:

<receiver android:name="com.sample.ThemesUpdatedReceiver">
        <intent-filter>
            <action android:name="com.sample.THEMES_UPDATED"/>
        </intent-filter>
    </receiver>

如果要广播,通常会有一个发送者和接收者。您已经发布了看起来像发件人的内容

发件人(无论您从何处发送):

接收器(例如在恢复()中)


发送方总是发送,接收方需要注册以监听目的。

我认为所有发送的广播都会被所有应用程序接收,除非您将包设置为特定包广播的发送目的


我没有收到广播,因为我的另一个应用程序没有启动(没有启动程序活动)。

@Ajit:Hi,自从Android API 3.0[API级别11]以来,如果一个应用程序从未启动过一次,那么它的广播接收器就无法接收事件。在你的情况下,你的应用程序没有启动程序活动,因此,可能是这种情况导致事件被拒绝

除此之外,请尝试使用以下方法: 您在创建意图对象时传递了该常量值。而是在方法intent.setAction()中传递它


希望这有帮助。

您是否在
com.demo.list
AndroidManifest.xml
文件中声明了
BroadcastReceiver
,还是仅在代码中声明了?因为它必须在
AndroidManifest.xml
中才能在应用程序之间工作。是的,它在那里有意图过滤器。重要的是com.demo.list没有启动程序活动。。不确定这会有什么不同,是的,注册在AndroidManifest.xmlOK中,那么XML中有什么呢?(THEMES_UPDATED常量的值是多少?)添加了编辑,是的THEMES_UPDATED是常量值
Intent toret = new Intent();
toret.setAction("com.myapp.foo");
toret.putExtra("bar", "fizzbuzz");
sendBroadcast(toret);
    IntentFilter intentFilter = new IntentFilter("com.myapp.foo");
    BroadcastReceiver receiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            // ... do something with the intent
        }
    // register the receiver
    this.registerReceiver(receiver , intentFilter);