android 通知自动唤醒屏幕,Android:如何让屏幕进入待机状态并保持收到BLE通知

我的猜测是,您可以获得部分唤醒锁,但是当屏幕关闭时,您的应用程序进入“后台运行”,默认情况下,Qt生成的AndroidManifest.xml将禁用后台运行。

默认情况下,“android.app.background_running”设置为“false”,当屏幕关闭或用户切换到在前台运行的不同应用程序时,您的应用程序执行将停止。你需要将android.app.background_running设置为“true”,正如我在上面的代码片段中所做的那样。

当应用程序在后台运行时,可能不允许对屏幕进行任何更改,否则会发生意外崩溃。对于我的应用程序,我只显示了一个主窗口,通过实现如下applicationStateChanged()插槽似乎可以避免这个问题:

class MainWindow : public QMainWindow

{

(...)

public slots:

void applicationStateChanged(Qt::ApplicationState state);

}

void MainWindow::applicationStateChanged(Qt::ApplicationState state)

{

if(state != Qt::ApplicationActive)

{

// Don't update GUI if we're not the active application

ui->centralWidget->setVisible(false);

qDebug() << "Hiding GUI because not active state: " << state;

}

else

{

ui->centralWidget->setVisible(true);

qDebug() << "Showing GUI because active now.";

}

}

每当用户关闭屏幕或切换到其他前台应用程序时,将自动调用此函数。

不要将其用于生命支持或其他任务关键情况。

QDialog

或者可能是

在某种程度上,最好是禁用重绘而不是隐藏

QMainWindow

的中心小部件?:

bool Application::notify(QObject * receiver, QEvent * event)

{

if ( event &&

event->type() == QEvent::Paint )

{

if ( applicationState() != Qt::ApplicationActive )

{

return false;

}

}

return QApplication::notify(receiver,event);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值