gpt4 book ai didi

android - 为什么 TileService 会等待几秒钟才能启动 Activity?

转载 作者:行者123 更新时间:2023-12-04 11:46:01 35 4
gpt4 key购买 nike

我正在使用 TileService作为打开我的应用程序 Activity 的快捷方式.它只是这样做,并且没有状态。

它看起来像这样:


class QuickAccessTileService : TileService() {

override fun onClick() {
super.onClick()

val intent = Intent(this, SlideOverActivity::class.java)
.addFlags(FLAG_ACTIVITY_NEW_TASK)

startActivityAndCollapse(intent)
}
}

它在 AndroidManifest 中声明作为:

<service
android:name=".service.QuickAccessTileService"
android:icon="@drawable/ic_home"
android:label="@string/tile_label"
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE">

<intent-filter>
<action android:name="android.service.quicksettings.action.QS_TILE" />
</intent-filter>
</service>

就目前而言,这是可行的。但是,当我的应用程序停止时,下次我尝试通过快速设置面板打开它时,它需要 几秒钟开始 Activity 。

这是我所知道的:

Activity 本身的启动并不慢。尝试通过启动器打开它会很清楚。
Service似乎需要一段时间才能开始 onClick甚至被执行。这说得通; Service应用程序未运行时,可能不会一直在后台运行。然而,这意味着当系统检测到点击我的 Tile , Service必须先重新创建 ,这需要的时间太长了。

我不确定从这里去哪里——如果我的猜测是正确的。

编辑:作为一个重要的补充,我可以在运行 Android Pie 的 OnePlus 7 Pro 上重现这一点。这可能是 OnePlus 特有的问题,因为我无法在模拟器上重现它。

最佳答案

@RequiresApi(Build.VERSION_CODES.N)
class TileSettingClass : TileService() {

override fun onClick() {

super.onClick()

val tile = qsTile
if (tile.state == Tile.STATE_INACTIVE) {
tile.state = Tile.STATE_ACTIVE
val intent = Intent(this.applicationContext, YourActivity::class.java)
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
intent.action = "yourAction"
applicationContext.startActivity(intent)
} else {
tile.state = Tile.STATE_INACTIVE
}
tile.updateTile()
}
}
list
<service
android:name=".main.service.TileSettingClass"
android:icon="@drawable/ic_tile_setting"
android:label="@string/milliy"
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE"
>
<intent-filter>
<action android:name="android.service.quicksettings.action.QS_TILE" />
</intent-filter>
</service>

关于android - 为什么 TileService 会等待几秒钟才能启动 Activity?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56960318/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com