【问题标题】:device admins onDisabled() not called in android设备管理员 onDisabled() 未在 android 中调用
【发布时间】:2014-03-07 09:10:48
【问题描述】:

我正在开发一个应用程序,我正在使我的应用程序设备管理员。当用户要禁用应用程序设备管理员的复选框时,我想显示自定义消息或对话框。如何在顶部获取或显示活动(自定义对话框) android OS 显示的 Deactivate 对话框对话框的活动堆栈的位置?我在单击 Deactivate 后获得禁用请求和禁用的所有操作,但我想在 android OS 显示的 Deactivate 对话框出现之前显示自定义对话框。我该如何实现这种逻辑。让我知道它的解决方案。

【问题讨论】:

    标签: android android-intent android-activity device-admin


    【解决方案1】:

    OnDisable 只会在禁用发生后调用如果您想在用户按下禁用时显示某些内容,请使用 Onrecieve 例如:

    @Override
    public void onReceive(Context context, Intent intent) {
     // detect whether disabling is requested?
     if (intent.getAction().equals(ACTION_DEVICE_ADMIN_DISABLE_REQUESTED)) {
    
         Toast.makeText(context, "Device Admin disabling now",
                    Toast.LENGTH_LONG).show();
     } else {
        super.onReceive(context, intent);
     }      
    }
    @Override
    public void onEnabled(Context context, Intent intent){
        super.onEnabled(context, intent);
        Log.d(TAG, "onEnabled");
    }
    
    @Override
    public void onDisabled(Context context, Intent intent){
        super.onDisabled(context, intent);
        Log.d(TAG, "onDisabled");
    }
    

    【讨论】:

    • 嘿,我想在设备管理员启用时通过单击激活按钮启动服务。你能解释一下吗……
    • @sunil 你可以重写 onEnabled 方法,当用户接受设备管理员这个方法会调用,你可以启动你的服务。
    • 我知道你说的这个方法,但是方法 startService(Intent) 没有定义它说
    • @sunil 你可以使用 context 启动服务, context.startService(new Intent(context, yourclass.java));
    • 还有一个问题:我可以在激活按钮旁边听取消按钮吗??
    猜你喜欢
    • 2012-05-21
    • 2013-04-12
    • 1970-01-01
    • 2013-08-02
    • 1970-01-01
    • 2013-09-29
    • 2016-03-12
    • 2012-03-07
    • 1970-01-01
    相关资源
    最近更新 更多