package com.locker
import android.app.ActivityManager
import android.app.Service
import android.content.Intent
import android.os.Handler
import android.os.IBinder
import android.util.Log
class BackgroundService : Service() {
private lateinit var mHandler: Handler
private lateinit var mRunnable: Runnable
override fun onBind(intent: Intent): IBinder? {
throw UnsupportedOperationException("Not yet implemented")
}
override fun onStartCommand(intent: Intent, flags: Int, startId: Int): Int {
mHandler = Handler()
mRunnable = Runnable { checkApps() }
mHandler.postDelayed(mRunnable, 500)
return Service.START_STICKY
}
private fun checkApps() {
val am = getSystemService(ACTIVITY_SERVICE) as ActivityManager
val runningAppProcessInfo = am.runningAppProcesses
Log.d("backgroundService", runningAppProcessInfo.indices.toString())
for (i in runningAppProcessInfo.indices) {
Log.d("backgroundService", runningAppProcessInfo[i].processName)
if (runningAppProcessInfo[i].processName == "com.android.settings") {
//val intent = Intent(this, MainActivity::class.java).apply {}
//startActivity(intent)
Log.d("backgroundService", runningAppProcessInfo[i].processName)
}
}
mHandler.postDelayed(mRunnable, 500)
}
}
Zrobiłem serwis który sprawdza co 500ms jakie aplikacje są aktualnie odpalone na urządzeniu jednak nie działa to tak jak tego oczekiwałem. Cały czas loguje mi tylko moją aplikację nawet gdy odpalę kilka innych. Ktoś wie co robię źle ?
API 26