从ADB安装后,静态BroadcastReceiver无法正常工作

hackjutsu

我正在研究一个需要通过adb广播自定义意图“ com.example.demo.action.LAUNCH”来启动应用程序的项目。

我的计划是静态注册一个广播接收器“ LaunchAppReceiver”,该接收器在接收到自定义的意图时将启动应用程序。

我通过调用安装了.apk

adb install -r <pakcageName>

然后我打电话给我

adb shell am broadcast -a com.example.demo.action.LAUNCH

但是,在发送意图之后,什么也没有发生。广播接收者似乎根本没有收到意图。我需要以某种方式实例化接收器才能接收到意图吗?

注意:由于android设备是远程设备,因此我必须使用adb来处理安装和启动。

谢谢!!


我宣布广播接收者如下

public class LaunchAppReceiver extends BroadcastReceiver{

    public LaunchAppReceiver () {}

    @Override
    public void onReceive(Context context, Intent intent) {

        Intent newIntent = new Intent(context, MainActivity.class);
        newIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(newIntent);
    }
}

并将其静态注册到AndroidManifest.xml中。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.demo" >

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme"
        android:enabled="true">
        <receiver
            android:name="com.example.demo.LaunchAppReceiver"
            android:enabled="true"
            android:exported="true">
            <intent-filter>
                <action android:name="com.example.demo.action.LAUNCH"/>
            </intent-filter>
        </receiver>
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>
hackjutsu

终于解决了这个问题。

从Honeycomb开始,所有新安装的应用程序将进入STOP阶段,直到至少启动一次。Android为所有广播意图添加一个标志“ FLAG_EXCLUDE_STOPPED_PACKAGES ”,这将阻止它们到达已停止的应用程序。http://droidyue.com/blog/2014/01/04/package-stop-state-since-android-3-dot-1/

要解决此问题,只需将标记“ FLAG_INCLUDE_STOPPED_PACKAGES添加到我们发送的意图中即可。就我而言,我将adb命令修改为

adb shell am broadcast -a com.example.demo.action.LAUNCH --include-stopped-packages

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

安装sinopia npm后无法正常工作

来自分类Dev

安装后HDMI输出无法正常工作

来自分类Dev

安装后Docker无法正常工作

来自分类Dev

npm安装后键入无法正常工作

来自分类Dev

phpmyadmin安装后无法正常工作

来自分类Dev

phpmyadmin安装后无法正常工作

来自分类Dev

从adb首次尝试后,启动完成无法正常工作

来自分类Dev

在PowerShell 4安装后Invoke-Sqlcmd无法正常工作

来自分类Dev

Magento Layoutviewer(Alan Storm)安装后无法正常工作

来自分类Dev

Mariadb在Ubuntu 16.04上安装后无法正常工作

来自分类Dev

安装ActiveState Perl后,ppm无法正常工作

来自分类Dev

Mariadb在Ubuntu 16.04上安装后无法正常工作

来自分类Dev

安装双启动Windows后,Ubuntu 18.04无法正常工作

来自分类Dev

在PowerShell 4安装后Invoke-Sqlcmd无法正常工作

来自分类Dev

全新安装ubuntu 14.10后wifi无法正常工作

来自分类Dev

从自制程序安装后无法使ffmpeg正常工作

来自分类Dev

安装多个Xcode后,Open Podfile无法正常工作

来自分类Dev

BroadcastReceiver中的Android onReceive无法正常工作

来自分类Dev

在AndroidManifest中注册的BroadcastReceiver无法正常工作

来自分类Dev

SCREEN_OFF BroadcastReceiver无法正常工作

来自分类Dev

无法使嵌入式BroadcastReceiver正常工作

来自分类Dev

烧瓶安装无法正常工作

来自分类Dev

RabbitVCS安装无法正常工作

来自分类Dev

在ASP.NET MVC中托管后,静态HTML页面无法正常工作

来自分类Dev

堆栈的静态实现无法正常工作

来自分类Dev

英特尔7260在安装过程中可正常工作,但在重启后无法正常工作

来自分类Dev

英特尔7260在安装过程中可正常工作,但在重启后无法正常工作

来自分类Dev

应用程序只有Only BroadcastReceiver无法正常工作

来自分类Dev

蓝牙ACTION_FOUND broadcastReceiver无法正常工作

Related 相关文章

  1. 1

    安装sinopia npm后无法正常工作

  2. 2

    安装后HDMI输出无法正常工作

  3. 3

    安装后Docker无法正常工作

  4. 4

    npm安装后键入无法正常工作

  5. 5

    phpmyadmin安装后无法正常工作

  6. 6

    phpmyadmin安装后无法正常工作

  7. 7

    从adb首次尝试后,启动完成无法正常工作

  8. 8

    在PowerShell 4安装后Invoke-Sqlcmd无法正常工作

  9. 9

    Magento Layoutviewer(Alan Storm)安装后无法正常工作

  10. 10

    Mariadb在Ubuntu 16.04上安装后无法正常工作

  11. 11

    安装ActiveState Perl后,ppm无法正常工作

  12. 12

    Mariadb在Ubuntu 16.04上安装后无法正常工作

  13. 13

    安装双启动Windows后,Ubuntu 18.04无法正常工作

  14. 14

    在PowerShell 4安装后Invoke-Sqlcmd无法正常工作

  15. 15

    全新安装ubuntu 14.10后wifi无法正常工作

  16. 16

    从自制程序安装后无法使ffmpeg正常工作

  17. 17

    安装多个Xcode后,Open Podfile无法正常工作

  18. 18

    BroadcastReceiver中的Android onReceive无法正常工作

  19. 19

    在AndroidManifest中注册的BroadcastReceiver无法正常工作

  20. 20

    SCREEN_OFF BroadcastReceiver无法正常工作

  21. 21

    无法使嵌入式BroadcastReceiver正常工作

  22. 22

    烧瓶安装无法正常工作

  23. 23

    RabbitVCS安装无法正常工作

  24. 24

    在ASP.NET MVC中托管后,静态HTML页面无法正常工作

  25. 25

    堆栈的静态实现无法正常工作

  26. 26

    英特尔7260在安装过程中可正常工作,但在重启后无法正常工作

  27. 27

    英特尔7260在安装过程中可正常工作,但在重启后无法正常工作

  28. 28

    应用程序只有Only BroadcastReceiver无法正常工作

  29. 29

    蓝牙ACTION_FOUND broadcastReceiver无法正常工作

热门标签

归档