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

AJi*_*Jit 6 android broadcast package

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

 Intent themesIntent = new Intent(ThemesManager.THEMES_UPDATED);
 themesIntent.putExtra("package", packageName);
 ctx.sendBroadcast(themesIntent);
Run Code Online (Sandbox Code Playgroud)

不工作..

编辑:

<receiver android:name="com.sample.ThemesUpdatedReceiver">
        <intent-filter>
            <action android:name="com.sample.THEMES_UPDATED"/>
        </intent-filter>
    </receiver>
Run Code Online (Sandbox Code Playgroud)

Ani*_*tal 5

@Ajit:嗨,自从Android API 3.0 [API级别11],如果一个应用程序从未启动过一次,那么它的BroadcastReceiver无法接收事件.因为,在您的情况下,您的应用程序没有启动器活动,因此可能是是导致拒绝事件的情况.

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

希望这可以帮助.


K5 *_*ser 2

如果您要进行广播,通常需要有发送者和接收者。您发布的内容看起来像发件人..

发件人(无论您从哪里发送):

Intent toret = new Intent();
toret.setAction("com.myapp.foo");
toret.putExtra("bar", "fizzbuzz");
sendBroadcast(toret);
Run Code Online (Sandbox Code Playgroud)

接收器(例如onResume()

    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);
Run Code Online (Sandbox Code Playgroud)

发送者总是发送,接收者需要注册来监听意图。