当前位置: 首页 > 知识库问答 >
问题:

关闭应用程序时未收到Android BOOT_COMPLETED

寿鸣
2023-03-14

我知道这个问题在网站上被问了很多,但是,我似乎找不到一个解决办法。当应用程序未运行时,不调用我的BOOT_COMPLETED接收器。

清单:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.startuptest"
    android:versionCode="1"
    android:versionName="1.0"
    android:installLocation="internalOnly">
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.startuptest.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>

        <receiver android:name="com.example.startuptest.StartUpBootReceiver" >
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
            </intent-filter>
        </receiver>
    </application>
</manifest>
public class StartUpBootReceiver  extends BroadcastReceiver {

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

        Log.d("startuptest", "StartUpBootReceiver " + intent.getAction());

        if ("android.intent.action.BOOT_COMPLETED".equals(intent.getAction())) {
            Log.d("startuptest", "StartUpBootReceiver BOOT_COMPLETED");
        }
    }
}

如果应用程序正在运行,并且我使用

adb shell
am broadcast -a android.intent.action.BOOT_COMPLETED

事件被正确接收,但是,如果应用程序被关闭,事件不会被接收,也不会在启动时被接收。

我已经安装了应用程序,然后启动了它几次,以确保它已经注册。我对这件事很迷茫,所以任何建议都将非常感谢。

共有1个答案

孔棋
2023-03-14

当BOOT_COMPLETED时,我启动了我的应用程序,所以我知道它在工作。我添加log.d它不会显示。我添加toast它显示。manifest.xml中的小差异

<receiver android:name="com.example.startuptest.StartUpBootReceiver">
    <intent-filter>
         <action android:name="android.intent.action.BOOT_COMPLETED" />
    </intent-filter>            
</receiver>
 类似资料:
  • 我开发了一个新的Android应用程序使用appcelerator。我使用ti.cloudpush来使用来自Firebase的推送通知,如本例所示;如果应用程序处于后台,则成功发送通知并显示在设备的通知栏中,但当应用程序处于前台或关闭时,则不会收到通知发送过程的结果是"成功"。 我需要使它像facebook messenger一样,在应用程序关闭时显示在设备屏幕上。我尝试了其他几个模块,如“ti.

  • 我目前正在开发Android(Cordova)应用程序,我正在使用Oneignal推送通知。首先,如果我关闭应用程序,推送通知不会被传递,所以我不得不添加一个Cordova插件来保持我的应用程序在后台运行: 我在deviceready之后的代码: 谢了。

  • null 我还试了一下: 关闭应用程序进程-&>;关闭设备-&>;打开设备电源-&>;发送通知。。。并且没有收到通知! 看起来firebase只有在设备启动了应用程序而不是100%关闭的情况下才能收到通知,我的意思是,只需用后退键关闭它而不是关闭应用程序进程。 这怎么可能呢?据推测,即使应用程序关闭,firebase也应该收到通知。 我正在Nexus5X和Android 8.0上进行测试,我使用的

  • 仅当应用程序关闭时,数据有效负载的使用不会收到任何通知,并且不会触发消息接收方法。 在下图中显示数据负载,单击此处查看参数 回复是点击这里查看回复 响应成功1,但在redmi手机中未收到任何通知。

  • 我试图在应用程序关闭时使pushkit voip消息正常工作。当应用程序位于前台或后台时,这些呼叫就会工作并显示出来。但在用户强制终止应用程序后,当收到通知时,应用程序终止,并发出信号9(由用户/ios终止)。 如何解决此问题? 我已经在我的应用程序中启用了后台获取、voip、音频和推送通知。还尝试删除所有Unity方法,将Callkit调用放在PushRegistry方法中,在接收通知时创建新的

  • 我面临Firebase云消息传递(FCM)的问题。我的问题是:当应用程序在最近的选项卡中关闭时,设备没有收到FCM推送通知。当应用程序处于前台或后台时,它可以正常工作。但是,当我从后台关闭它时,我在通知栏中没有收到任何通知。 我看了很多帖子,尝试了很多解决方案,但在我的情况下没有任何效果:( 我尝试过的步骤: 我在依赖项中添加了fcm 2.我已经在我的项目/build.gradle中添加了谷歌服务