Android 设备重启后广播接收器不工作

2023-12-09

我已经检查了所有相关问题,但没有找到解决此问题的方法。所以这对我来说绝对是一个新问题。

我拥有的

我有一个 Android 应用程序,它在其清单中注册了一些广播接收器。这就是我的清单的样子。

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

    <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.USE_FINGERPRINT" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_CALL_LOG" />
    <uses-permission android:name="android.permission.WRITE_CALL_LOG" />
    <uses-permission android:name="com.android.vending.BILLING" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />

    <uses-feature
        android:name="android.hardware.telephony"
        android:required="false" />

    <uses-feature
        android:name="android.hardware.screen.portrait"
        android:required="false" />

    <application
        android:name=".base.MyApp"
        android:allowBackup="false"
        android:icon="@drawable/ic_launcher"
        android:label="@string/label_app_name"
        android:largeHeap="true"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
        tools:replace="label, allowBackup">

        <receiver android:name=".mics.BootReceiver">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
                <action android:name="android.intent.action.QUICKBOOT_POWERON" />
            </intent-filter>
        </receiver>

        <receiver android:name=".PhoneCallReceiver">
            <intent-filter>
                <action android:name="android.intent.action.NEW_OUTGOING_CALL" />
            </intent-filter>
        </receiver>

        <receiver
            android:name=".mics.DeviceAdminReceiver"
            android:permission="android.permission.BIND_DEVICE_ADMIN">
            <intent-filter>
                <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
            </intent-filter>

            <meta-data
                android:name="android.app.device_admin"
                android:resource="@xml/device_admin" />
        </receiver>

        <receiver
            android:name="com.clevertap.android.sdk.InstallReferrerBroadcastReceiver"
            android:exported="true">
            <intent-filter>
                <action android:name="com.android.vending.INSTALL_REFERRER" />
            </intent-filter>
        </receiver>

        <meta-data
            android:name="com.app.myapp.utils.ImageLoaderModule"
            android:value="GlideModule" />

        <meta-data
            android:name="com.app.myapp.utils.AudioCoverLoaderModule"
            android:value="GlideModule" />

        <provider
            android:name="android.support.v4.content.FileProvider"
            android:authorities="${applicationId}.provider"
            android:exported="false"
            android:grantUriPermissions="true">

            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/provider_paths" />
        </provider>

        <activity
            android:name=".core.activities.SplashActivity"
            android:excludeFromRecents="true"
            android:label="@string/label_app_name"
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
            </intent-filter>
        </activity>

        <activity-alias
            android:name=".core.activities.SplashActivity-Alias"
            android:icon="@drawable/ic_launcher"
            android:label="@string/label_app_name"
            android:noHistory="true"
            android:targetActivity="com.app.myapp.core.activities.SplashActivity">

            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.MONKEY" />
            </intent-filter>

        </activity-alias>

        <activity
            android:name=".core.flow.authFlow.activities.AuthFlowActivity"
            android:excludeFromRecents="true"
            android:label="@string/label_app_name"
            android:screenOrientation="portrait" />

        <service android:name=".features.fileCloudSync.KillNotificationService" />

    </application>

</manifest>

还有 10-15 个其他活动,但为了简单起见已被删除。这是基本的引导接收器类。我从这里开始服务。

public class BootReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {
            AlertUtils.showToast(context, "BOOT COMPLETED", Toast.LENGTH_LONG);
        }
    }
}

电话接收者类看起来像这样(它也被简化了),

public class PhoneCallReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)) {
            AlertUtils.showToast(context, "PHONE CALL RECEIVED", Toast.LENGTH_LONG);
            // Simplified for brevity
        }
    }
}

问题

当我安装应用程序并启动一次时,所有这些接收器都工作正常。但在我重新启动设备后,这些接收器根本无法工作。既没有BootCompleteReceiver也不PhoneCallReceiver得到他们的onReceive()方法调用。

我的假设是这些接收器会在重新启动后自动注册,但它就是不起作用。我需要BootCompleteReceiver以便我可以在我的应用程序中启动一项重要服务。

我的观察

我对此进行了彻底的测试。重新启动设备后,接收器在我的设备中工作正常Nexus 5X(牛轧糖)、Nexus 6P(牛轧糖)、YU Yuphoria(棒棒糖)但不在我的OnePlus 3(牛轧糖)和 Mi 4i(棒棒糖).

相同的代码如何在少数设备上完美运行,而在其他设备上根本不起作用?我根本没有改变任何事情。

我在这里做错了什么?我的应用程序严重依赖于这些广播并基于这些广播启动服务。任何帮助将不胜感激。

EDIT 1

为了更好地理解问题,我刚刚创建了一个非常小的测试项目,其中只有一个活动并且完全相同BootCompleteReceiver and PhoneCallReceiver.

但奇怪的是,这个项目在我的 OnePlus 3 上完美运行,而我的实际应用程序的接收器在重新启动后无法工作。我最初假设问题出在操作系统或设备上,但事实并非如此。

那么实际问题出在哪里呢?它是在我的应用程序中(但它在其他设备上完美运行)还是在操作系统和设备中(小型测试项目在相同操作系统和相同设备上运行良好)?

这真的让我很困惑。我需要一些专家的帮助。

EDIT 2

我已经尝试过@shadygoneinsane 给出的建议。以下是我的观察。

1)我尝试通过ADB发送BOOT_COMPLETED广播。

./adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -p com.app.myapp

我得到了这个堆栈跟踪,

Broadcasting: Intent { act=android.intent.action.BOOT_COMPLETED pkg=com.app.myapp }
java.lang.SecurityException: Permission Denial: not allowed to send broadcast android.intent.action.BOOT_COMPLETED from pid=25378, uid=2000
    at android.os.Parcel.readException(Parcel.java:1683)
    at android.os.Parcel.readException(Parcel.java:1636)
    at android.app.ActivityManagerProxy.broadcastIntent(ActivityManagerNative.java:3696)
    at com.android.commands.am.Am.sendBroadcast(Am.java:778)
    at com.android.commands.am.Am.onRun(Am.java:404)
    at com.android.internal.os.BaseCommand.run(BaseCommand.java:51)
    at com.android.commands.am.Am.main(Am.java:121)
    at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
    at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:276)

可能是因为我的设备没有root。我无法以任何方式发送此广播。

2)之后我尝试使用 PROCESS_OUTGOING_CALLS 广播。

./adb shell am broadcast -a android.intent.action.PROCESS_OUTGOING_CALLS -p com.app.myapp

我懂了,

Broadcasting: Intent { act=android.intent.action.PROCESS_OUTGOING_CALLS pkg=com.app.myapp }
Broadcast completed: result=0

看起来广播成功了,但是我没有看到任何Toast或任何日志。然后我打开拨号器拨打一个号码,然后我可以看到 Toast 和日志。

所以看来通过ADB发送广播不起作用,但实际上打开拨号器并拨打了一个号码。

EDIT 3

根据@ChaitanyaAtkuri 的建议,我还尝试为意图过滤器添加优先级,但这效果不佳。

我使用过 500、999 甚至最高整数值等优先级,但没有任何效果。我的一些朋友的应用程序也出现了这个问题。它们在某些设备上工作,但在其他设备上不起作用。

EDIT 4

I have 终于找到了我的 OnePlus 3 出现问题的根本原因。我的 OnePlus 3 最近更新为 Nougat,他们引入了类似于 Mi 设备的功能,可防止某些应用程序在重新启动后自动启动。

禁用此功能后,我的应用程序在完美重启后开始接收广播。但这仍然不能解释两件事。

1)我的小测试项目自动列入自动启动应用程序列表中的白名单,这就是它按预期工作的原因。但这怎么可能呢?为什么操作系统认为这个小应用程序值得自动启动?

2) 有一些应用程序,如 LockDown Pro、500 Firepaper,在自动启动应用程序屏幕中被列入黑名单,但在我的 OnePlus 3 和 Mi 4i 中重新启动后仍然会收到广播。现在怎么可能?是否可以以某种方式以编程方式允许我的应用程序在这些设备(OnePlus 和 Mi)中自动启动?

EDIT 5

我已经尝试过@Rahul Chowdhury 提出的解决方案,它看起来确实效果很好。添加辅助服务后,问题重新解决。

但是,如果用户在授予可访问性权限后撤销它,那么我是否可以通过编程方式检查可访问性权限是否可用于我的应用程序?


这是在您提到的 OnePlus 和 Mi 设备上经过测试且有效的解决方案。

正如你所说的自动启动预防功能OnePlus and Mi设备阻止应用程序在启动完成后自动启动其服务,以提高设备的整体启动速度和电池性能。但是,有一种解决方法可以让您的应用程序即使在打开此功能的情况下也能正常运行。

我注意到如果你有一个AccessibilityService在您的应用程序中并且由用户打开,然后您的应用程序会通过这些制造商应用的过滤器,并且应用程序会收到其启动完成事件和任何其他BroadcastReceiver按预期工作。

这个技巧的可能解释是因为AccessibilityService是系统级服务,因此通过注册您自己的服务,您可以通过这些制造商应用的某些过滤器一旦您的定制AccessibilityService由操作系统触发,您的应用程序将主动接收符合条件的BroadcastReceiver您已注册。

那么,这是如何做到的,

首先将此权限添加到您的AndroidManifest.xml,

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

这将允许您注册您的应用程序AccessibilityService与系统。

现在,为您的应用程序添加一个非常基本的配置AccessibilityService例如创建一个文件my_accessibility_service.xml项目中 res 文件夹下的 XML 文件夹内。

<?xml version="1.0" encoding="utf-8"?>
<accessibility-service
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:accessibilityFeedbackType="feedbackSpoken"
    android:description="@string/service_desc"
    android:notificationTimeout="100"/>

还剩下一步要做,定义您的自定义AccessibilityService在你的项目中,

public class MyAccessibilityService extends AccessibilityService {

    @Override
    public void onAccessibilityEvent(AccessibilityEvent event) { }

    @Override
    public void onInterrupt() {

    }
}

请注意,因为您不需要AccessibilityService出于任何目的而不是此解决方法,您可以将重写的方法留空。

最后,只需声明您的AccessibilityService在你的AndroidManifest.xml,

<service
    android:name=".MyAccessibilityService"
    android:label="@string/app_name"
    android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">
    <intent-filter>
        <action android:name="android.accessibilityservice.AccessibilityService"/>
    </intent-filter>

    <meta-data
        android:name="android.accessibilityservice"
        android:resource="@xml/my_accessibility_service"/>
</service>

就这样。现在,在您的应用程序中,只需要求您的用户从设置中打开您的应用程序的辅助功能服务,然后将其保持打开状态即可!您的应用程序可以在所有设备上正常运行,即使操作系统对哪些应用程序应在启动时自动启动进行了过滤。

EDIT 1

您可以通过以下方法检查您的应用是否已打开辅助功能服务,

private static final int ACCESSIBILITY_ENABLED = 1;

public static boolean isAccessibilitySettingsOn(Context context) {
    int accessibilityEnabled = 0;
    final String service = context.getPackageName() + "/" + MyAccessibilityService.class.getCanonicalName();
    try {
        accessibilityEnabled = Settings.Secure.getInt(
                context.getApplicationContext().getContentResolver(),
                android.provider.Settings.Secure.ACCESSIBILITY_ENABLED);
    } catch (Settings.SettingNotFoundException e) {
        Log.e("AU", "Error finding setting, default accessibility to not found: "
                + e.getMessage());
    }
    TextUtils.SimpleStringSplitter mStringColonSplitter = new TextUtils.SimpleStringSplitter(':');

    if (accessibilityEnabled == ACCESSIBILITY_ENABLED) {
        String settingValue = Settings.Secure.getString(
                context.getApplicationContext().getContentResolver(),
                Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES);
        if (settingValue != null) {
            mStringColonSplitter.setString(settingValue);
            while (mStringColonSplitter.hasNext()) {
                String accessibilityService = mStringColonSplitter.next();

                if (accessibilityService.equalsIgnoreCase(service)) {
                    return true;
                }
            }
        }
    }

    return false;
}

希望这可以帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 设备重启后广播接收器不工作 的相关文章

  • onBeaconServiceConnect 未调用

    和以前一样 我使用 Android Beacon 库 它已经工作了 我可以通过 BLE 低功耗蓝牙找到信标 但是现在 更新到最新版本的库后 现在方法onBeaconServiceConnect 不再跑了 请告诉我我需要做什么才能让它发挥作用
  • 在android中通过BLE传输图像

    我使用以下代码传输 1 MB 的图像 如果在每个数据包之间实现线程延迟 则图像将成功传输 如果未设置线程延迟 则所有数据包均从BluetoothGattServer 发送 但BluetoothGattCallback 不会接收所有数据包 任
  • Manifest Merger工具:替换失败

    我正在使用一个使用自己的 android theme 的库 因此在构建时收到以下错误 错误 55 9 任务 contacit processDebugManifest 执行失败 清单合并失败 AndroidManifest xml 中的属性
  • FTS3 在 ORMLite 中搜索?

    我对 FTS3 一无所知 除了http developer android com guide topics search search dialog html http developer android com guide topics
  • 带有一、二和三个按钮的 Android 警报对话框

    我不经常发出警报 但每次发出警报时 我都会花一些时间来阅读文档 https developer android com guide topics ui dialogs html并弄清楚如何去做 由于我现在不得不这样做几次 所以我将在下面写一
  • ffmpeg视频已压缩但无法在浏览器中播放

    我已经集成了ffmpeg4android lib 视频压缩工作正常 但视频无法在除 safari 浏览器之外的浏览器中播放 上传到服务器后 我使用了以下命令 ffmpeg y i
  • 调试:在 Android 1.0 中找不到文件

    今天我更新到 Android Studio v 1 0 在尝试编译任何项目时出现以下错误 app build intermediates classes debug 找不到文件 问题是在更新之前我没有任何问题 这是我实际尝试编译的代码 构建
  • Android在排序列表时忽略大小写

    我有一个名为路径的列表 我目前正在使用以下代码对字符串进行排序 java util Collections sort path 这工作正常 它对我的 列表进行排序 但是它以不同的方式处理第一个字母的情况 即它用大写字母对列表进行排序 然后用
  • 如何检查 Android 中连接的 wifi 网络是否处于活动状态

    如何自动检查android中连接的WiFi网络上的互联网是否处于活动状态 我可以检查 wifi 是否已启用或 wifi 网络是否已连接 但我不确定如何检查互联网是否已连接 这可能吗 private boolean connectionAva
  • 画透明圆,外面填充

    我有一个地图视图 我想在其上画一个圆圈以聚焦于给定区域 但我希望圆圈倒转 也就是说 圆的内部不是被填充 而是透明的 其他所有部分都被填充 请参阅这张图片了解我的意思 http i imgur com zxIMZ png 上半部分显示了我可以
  • Android FragmentTransaction 自定义动画(未知动画师名称:Translate)

    我正在尝试让自定义动画与我的片段一起使用 我已按照在线教程进行操作 但出现以下错误 java lang RuntimeException 未知的动画师名称 翻译 动画的 XML 如下
  • HERE 地图:更改路线已行驶部分的颜色

    导航时可以改变路线的颜色吗 具体来说 我希望路线中已行驶的部分的颜色与即将行驶的部分的颜色不同 现在都是同一个颜色 将 MapRoute 对象的 TravelColor 变量设置为透明对我来说很有效 mapRoute color Resou
  • 如何修改 Skobbler 注释而不重新添加它

    我必须修改 SKAnnotation 的图像 注释生成器代码 private SKAnnotation getAnnotationFromView int id int minZoomLvl View view SKAnnotation a
  • 哪些 Flutter 插件或功能可以利用外部 iOS/Android 显示器来显示与主显示器不同的内容

    我正在构建一个跨平台应用程序 需要在外部显示器上显示不同的视图 通常通过连接到 LCD 投影仪的 HDMI 适配器电缆连接 Flutter 是否能够在内置的外部显示器上显示不同的屏幕 在现有的 Flutter 插件中还是使用现有的 Flut
  • Android:监听状态栏通知

    有没有办法在状态栏被下拉时监听通知 1 用于检测状态栏变化 您可以注册一个监听器来获取系统UI可见性变化的通知 因此 要在您的活动中注册侦听器 Detecting if the user swipe from the top down to
  • 错误:无法创建新会话,因为找不到需要 HttpClient、InputStream 和 long 的“createSession”

    我正在尝试自动化 Android 混合应用程序 但出现以下错误 1 线程 main org openqa selenium WebDriverException中出现异常 无法创建新会话 因为未找到需要 HttpClient InputSt
  • 在 KitKat 4.4.2 中获取 SDard 路径和大小

    我在 Google Play 上有一个设备信息应用程序 在该应用程序中我有存储信息 我知道 Android 4 4 在访问外部 SD 卡方面发生了一些变化 内部似乎没有给我带来问题 我的问题是 如何可靠地获取 KitKat 上 SD 卡的大
  • javafx android 中的文本字段和组合框问题

    我在简单的 javafx android 应用程序中遇到问题 问题是我使用 gradle javafxmobile plugin 在 netbeans ide 中构建了非常简单的应用程序 其中包含一些文本字段和组合框 我在 android
  • 获取其他指针的MotionEvent.getRawX/getRawY

    我可以获取其他指针的MotionEvent getRawX getRawY 值吗 MotionEvent getRawX API 参考 http developer android com reference android view Mo
  • 尝试将 SQLite DB 从数据复制到 SD 卡

    我正在使用以下代码 该代码发布在 Stack Overflow 上的某个位置 并根据我的目的进行了修改 try File sd Environment getExternalStorageDirectory File data Enviro

随机推荐

  • 在 Ruby 1.9.2 中使用 SOAP 和其他标准库

    因此 我最近升级到 1 9 2 Ruby 一直使用 1 8 7 我想尝试一下 Rails 3 我遇到的最大问题是我的 SOAP require 语句都不起作用 我有这样的问题 require soap rpc driver require
  • 更新 pandas groupby().last() 的列值

    给定数据框 dfd pd DataFrame A 1 1 2 2 3 3 B 4 5 6 7 8 9 C a b c c d e 我可以使用以下方法找到每个 A 组的最后一个 C 值 dfd groupby A last C 但是 我想将
  • 复制初始化和直接初始化的混淆

    考虑简单的陈述 摘自在 C 中 复制初始化和直接初始化之间有区别吗 A c2 A 该语句对临时值进行值初始化 然后复制该值 值写入 c2 阅读 5 2 3 2 和 8 5 14 这当然需要一个 非显式复制构造函数 阅读 8 5 14 和 1
  • 协议和委托之间的区别?

    和有什么区别protocol and a delegate and 我们如何声明variables in a protocol class 一个协议 用 protocolObjective C 中的语法 用于声明类 采用 声明它将使用此协议
  • 如何在调试模式下刷新 fmt 输出?

    我正在尝试fmt我确实从下面的代码中得到了输出 include
  • 通过选择部分或全部字符生成所有排列的算法

    我需要通过选择一些元素来生成字符串的所有排列 就像如果我的字符串是 abc 输出将是 a b c ab ba ac ca bc cb abc acb bac bca cab cba 我想到了一个基本算法 其中我生成 abc 的所有可能组合
  • Typescript 不会复制 d.ts 文件来构建

    所以也许我很困惑 但我想如果我添加declaration true到我的 tsconfig json 我可以让它 tsc 复制我的 d ts文件 以及转译的代码和它的d ts files EG src lib types d ts foo
  • 使用 Mac 在服务器上运行 Python

    我正在尝试在这个地址运行我的 python 文件 http usersignup drawyourpets com 正如您所看到的 它显示了文件夹中的文件 但并未实际运行它们 EDIT 现在它只返回 500 错误 当我使用 Google A
  • OAuth2 - 检索 TOKEN 时 OPTIONS 请求的状态 401

    我们的堆栈使用 Backbone 作为客户端应用程序 使用 Spring Boot 作为 RESTful API 我们正在尝试使用 OAuth2 进行基本身份验证 并由用户提供用户名和密码 我们使用 Spring Security 进行身份
  • 在 ES6 中正确扩展数组/代理?

    目前正在尝试制作数组 对象的自定义实现 我想最终会非常相似 并且偶然发现了一个让我发疯的问题 正如您所看到的 b 只是一个 array 的实例 即使它是从自定义类 CachedArray 创建的 因此我的自定义函数 testPush 未定义
  • Rails SELECT 40001 SQL_NO_CACHE 从未知位置触发

    在 MySQL 数据库服务器中 我们有名为test 该架构具有名为users 桌子usersRails 应用程序未在任何地方使用 唯一的入口处users发现位于 schema rb 中 The users表存储了一些数据 并且数据由在其他服
  • Fluent NHibernate 使用 FluentMappings 忽略 ClassMap 内的属性

    我在我的项目中使用 NHibernate 3 1 和 Fluent NHibernate 作为 ORM 我需要有一个被 Fluent NHibernate 忽略的 POCO 属性 起初 我的帖子可能看起来与这个问题 但事实并非如此 我的复杂
  • arima.sim() 函数具有变化:样本大小、phi 值和 sd 值

    我想模拟ARIMA 1 1 0 随变化 样本量 phi值 标准偏差值 我很佩服下面的吼叫r代码只是模拟一个ARIMA 1 1 0 我想遵循格式来模拟许多ARIMA 1 1 0 随着变化的样本量 phi值 and 标准偏差值 wn lt rn
  • 无法执行不同的投影查询

    我有一个简单的小 观察 课 from google appengine ext import ndb class Observation ndb Model remote id ndb StringProperty dimension id
  • 在 MVC3 中使用 WebApi

    使用 WebApi 在 MVC 客户端中使用服务的最佳方式是什么 如果响应返回为
  • PHP数据库连接实践

    我有一个连接到多个数据库 Oracle MySQL 和 MSSQL 的脚本 每次脚本运行时可能不会使用每个数据库连接 但所有数据库连接都可以在单个脚本执行中使用 我的问题是 即使所有连接可能都没有被使用 最好在脚本开始时连接到所有数据库一次
  • 基于范围的 for 如何适用于普通数组?

    在 C 11 中 您可以使用基于范围的for 其作用为foreach其他语言的 它甚至适用于普通的 C 数组 int numbers 1 2 3 4 5 for int n numbers n 2 它如何知道何时停止 它是否仅适用于已在同一
  • 为什么同样的方法在 Swift 的数组扩展中会失败?

    当我尝试打电话时 我的行为很奇怪sort 从数组扩展中 例如此方法 func test let a 1 2 3 sort a x y in x lt y 可以单独工作 但在内部时会失败Array扩大 extension Array func
  • 从字节数组中创建新的 FileStream

    我正在尝试从字节数组创建一个新的 FileStream 对象 我确信这根本没有意义 所以我将在下面尝试更详细地解释 我正在完成的任务 1 读取之前的源文件压缩的2 使用GZipStream解压数据 3 将解压后的数据复制到字节数组中 我想改
  • Android 设备重启后广播接收器不工作

    我已经检查了所有相关问题 但没有找到解决此问题的方法 所以这对我来说绝对是一个新问题 我拥有的 我有一个 Android 应用程序 它在其清单中注册了一些广播接收器 这就是我的清单的样子