Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.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中启动完成时,未从AndroidManifest调用BroadcastReceiver_Android - Fatal编程技术网

在Android中启动完成时,未从AndroidManifest调用BroadcastReceiver

在Android中启动完成时,未从AndroidManifest调用BroadcastReceiver,android,Android,在我的Android应用程序中,我想运行服务,而不打开/运行我的应用程序。为此,我扩展了broadcastReceiver类。但是这个BroadcastReceiver类没有从BOOT\u COMPLETE上的AndroidManifest.xml调用。那么请告诉我代码中的问题是什么?或者有没有其他方法可以运行服务,而不打开我的应用程序?我已经检查了代码的控制流,整个代码工作正常,问题是没有调用BroadcastReceiver AndroidManifest.xml文件的一部分: <us

在我的Android应用程序中,我想运行
服务
,而不打开/运行我的应用程序。为此,我扩展了
broadcastReceiver
类。但是这个
BroadcastReceiver
类没有从
BOOT\u COMPLETE
上的
AndroidManifest.xml
调用。那么请告诉我代码中的问题是什么?或者有没有其他方法可以运行
服务
,而不打开我的应用程序?我已经检查了代码的控制流,整个代码工作正常,问题是没有调用
BroadcastReceiver

AndroidManifest.xml文件的一部分:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

<service android:name=".HelloService"
         android:exported="false"/>

<receiver android:name=".MyBroadcastreceiver" android:enabled="true" android:exported="false">
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED"/>
    </intent-filter>
</receiver>

中删除
android:exported=“false”
。这表示您不希望任何人(除了您自己)向此接收器发送广播。因此,系统将忽略您的接收器


除此之外,您还需要一个活动,并在尝试重新启动设备之前运行该活动。你可能已经有了,但为了完整起见,我想我会提到它。

为什么要设置
android:exported=“false”
?即使删除了它,结果也是一样的@Khalidovoleg您是否也尝试删除
HelloService
android:exported=“false”
?重新启动后,android操作系统需要一段时间才能触发引导广播。在某些设备上,BroadcastReveiver接收到实际事件可能需要5分钟。我尝试等待最多10分钟@Pfennigbaumstill得出同样的结果@公用软件
package com.example.abc.project1;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;

public class MyBroadcastreceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        /*this is not being called*/
        Intent startServiceIntent = new Intent(context, HelloService.class);
        context.startService(startServiceIntent);
    }
}