我希望有一个在后台运行的应用程序,它知道何时任何内置的应用程序(消息,联系人等)正在运行。
所以我的问题是:
我应该如何在background.
有经验的人会非常感谢你的回复。
发布于 2017-08-10 01:16:29
我将两个解决方案组合在一个方法中,它适用于我的API 24和API 21。其他的我没有测试过。
Kotlin中的代码:
private fun isAppInForeground(context: Context): Boolean {
val appProcessInfo = ActivityManager.RunningAppProcessInfo()
ActivityManager.getMyMemoryState(appProcessInfo)
if (appProcessInfo.importance == IMPORTANCE_FOREGROUND ||
appProcessInfo.importance == IMPORTANCE_VISIBLE) {
return true
} else if (appProcessInfo.importance == IMPORTANCE_TOP_SLEEPING ||
appProcessInfo.importance == IMPORTANCE_BACKGROUND) {
return false
}
val am = context.getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager
val foregroundTaskInfo = am.getRunningTasks(1)[0]
val foregroundTaskPackageName = foregroundTaskInfo.topActivity.packageName
return foregroundTaskPackageName.toLowerCase() == context.packageName.toLowerCase()
}在Manifest中
<!-- Check whether app in background or foreground -->
<uses-permission android:name="android.permission.GET_TASKS" />https://stackoverflow.com/questions/2166961
复制相似问题