【问题标题】:Android- start a dialog when application on backgroundAndroid-当应用程序在后台时启动一个对话框
【发布时间】:2015-06-16 08:42:49
【问题描述】:

我有一个具有呼叫对话框的应用程序。我正在尝试在锁定屏幕上显示通话对话框。当应用程序不在后台时它已经工作了,实际上当应用程序打开并且锁定屏幕处于活动状态时它没有工作。
这是我的代码:

    public class CustomMainActivity extends QtActivity implements SensorEventListener
    {

    @Override
    protected void onStart() {
        super.onStart();
        if (getCallId() != 0)
            getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON |
                WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
                WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON |
                WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
        else
            getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON |
            WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
            WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON |
            WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
    .
    .
    .
    }

    @Override
    protected void onResume() {
        super.onResume();

        if (getCallId() != 0)
            getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON |
                WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
                WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON |
                WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
        else
            getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON |
            WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
            WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON |
            WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
    .
    .
    .
    }

}

【问题讨论】:

    标签: android qt qtandroidextras


    【解决方案1】:

    尝试在onCreate() 中添加这些标志。

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        getWindow().addFlags(
                WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
                        | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
                        | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
    
        super.onCreate(savedInstanceState);
    }
    

    【讨论】:

    • 我在 onCreate 上添加了这一行。如果应用程序打开并进入睡眠状态,它不会显示呼叫对话框。在另一种情况下,它正在工作。
    • 您的对话处于不同的活动中?我的意思是你如何显示你的对话框?
    • 我在 Qt 上的对话框,我检查 callstate - if (getCallId() != 0) - 如果收到呼叫,我只想显示呼叫对话框
    • 我的意思是说你必须启动一个单独的活动(包括 onCreate 中的那些标志)才能显示对话框。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-30
    • 2017-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多