基本上,问题在标题中。
示例:
<?xml version="1.0"?>
<manifest package="org.example.test" xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="0.1" android:versionCode="1" android:installLocation="auto">
<application android:hardwareAccelerated="true" android:name="org.qtproject.qt5.android.bindings.QtApplication" android:label="@string/app_name" android:icon="@drawable/icon">
<activity android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|locale|fontScale|keyboard|keyboardHidden|navigation" android:name="org.qtproject.qt5.android.bindings.StartActivity" android:label="@string/app_name" android:screenOrientation="sensorLandscape" android:launchMode="singleTop" android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<!-- Background running -->
<!-- Warning: changing this value to true may cause unexpected crashes if the
application still try to draw after
"applicationStateChanged(Qt::ApplicationSuspended)"
signal is sent! -->
<meta-data android:name="android.app.background_running" android:value="true"/>
</activity>
</application>
<uses-sdk android:minSdkVersion="16" android:targetSdkVersion="19"/>
<supports-screens android:largeScreens="true" android:normalScreens="true" android:anyDensity="true" android:smallScreens="true"/>
</manifest>
它用于Android的QT应用程序,但我认为它与QT无关,因为它在清单中。我错了吗?
答案 0 :(得分:0)
经过长时间的搜索,这就是我找到的
这个选项有什么作用?
将 android.app.background_running 设置为true
意味着不要冻结Qt主循环,但必须确保在应用程序背景化时不绘制任何内容。< / p>
这个SO答案说明我们如何更改其默认值QT 5 android, Change background_running value to True
答案 1 :(得分:0)
由于此选项与我之前认为的Android API无关,因此我开始深入研究QT源代码的含义。
设置此选项将导出QT_BLOCK_EVENT_LOOPS_WHEN_SUSPENDED
环境变量,该变量将由QT本机代码检查并将停止事件调度程序(从那时起将不会调用QCoreApplication::processEvents
)用于应用程序的QT部分主要活动已由onStop(
)和onPause()
方法停止或暂停。这就是“冻结”事件循环的意思。
我不知道应该注意的所有注意事项,但我会在发现后立即更新我的答案。