小编Edm*_*d C的帖子

在安全的Android锁定屏幕中使用FLAG_SHOW_WHEN_LOCKED和disableKeyguard()

上下文

最近,我一直在寻找可靠的方法来控制安全的Android Keyguard.主要是显示自定义锁屏.我知道谷歌已经声明平台没有正式支持自定义锁定屏幕,并且应该预期事情会破裂,但是,对于现有的API,我相信必须有办法实现这一点.我做了大约一周的研究,但仍然存在问题.假设已启用安全的Keyguard,到目前为止,我已实现了

  • WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED允许在屏幕上显示活动(窗口),将Keyguard放在后面,并防止所有不安全的操作.通知面板被禁用,完成活动将调出键盘.我在锁屏活动中实现了如下.

    @Override
    public void onAttachedToWindow() {
        window.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
    }
    
    Run Code Online (Sandbox Code Playgroud)
  • KeyguardManager,KeyguardManager.KeyguardLock已弃用的类,但它们仍然一直工作到Jelly Bean.要做到这一点,我有一个Service处理两件事,拿着一个静态KeyguardManager和相关的对象,让它持有一个BroadcastReceiver接收Intent.ACTION_SCREEN_ONIntent.ACTION_SCREEN_OFF.(所有对象都已正确初始化)


对于 ScreenReceiver

public static synchronized void disableKeyguard() {
    if ( isLocked ) {
        if ( keyguardLock == null ) {
            keyguardLock = keyguardManager.newKeyguardLock(LOG_TAG);
        }
        keyguardLock.disableKeyguard();
        isLocked = false;
    }
}

public static synchronized void reenableKeyguard() {
    if ( !isLocked ) {
        if ( keyguardLock == null ) {
            keyguardLock = keyguardManager.newKeyguardLock(LOG_TAG);
        }
        keyguardLock.reenableKeyguard();
        keyguardLock …
Run Code Online (Sandbox Code Playgroud)

android android-intent

25
推荐指数
2
解决办法
2万
查看次数

React Native App 仅在发布版本中滞后

这是一件有趣的事。我的应用程序在调试模式下完美运行,但在发布模式下到处都滞后(过渡、触摸、加载等)。通常发布版本比调试版本更快。我没有打开“远程调试 JS”,所以这并不是因为 Chrome 运行了调试版本而使其速度更快。

我在 XCode/Instruments 中对应用程序进行了分析,它显示了一堆 CFStrings 在内存中堆积,直到耗尽并崩溃。不幸的是,在 Xcode 中暂停调试器不会显示 JS 代码,因此我无法检查某些内容是否陷入无限循环。

编辑:我有 tslint 强制执行无console调用,并transform-remove-console启用 Babel 插件来删除console其他库内的所有调用


您对1. 一般而言,什么会使发布模式比调试模式慢有什么想法吗?
2. 如何追踪发布版本中调用了哪些 JS 函数?(当没有 shake-to-debug 选项时)
3. 是否可以检查 Instruments 内的 CFStrings 中的内容?

谢谢!

react-native

5
推荐指数
0
解决办法
1869
查看次数

标签 统计

android ×1

android-intent ×1

react-native ×1