#android #kotlin #broadcastreceiver
#Android #kotlin #broadcastreceiver
Вопрос:
Я пытаюсь запустить это BroadcastReceiver
в Service
.
Я регистрирую его в onStartCommand
:
import android.app.Service
import android.content.*
import android.os.IBinder
import android.util.Log
import java.util.*
class CopyService : Service() {
private lateinit var mPasteReceiver: PasteReceiver
private val TAG = "COPYSERVICE"
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
val intentFilter = IntentFilter()
intentFilter.addAction(Intent.ACTION_PASTE)
mPasteReceiver = PasteReceiver()
registerReceiver(mPasteReceiver, intentFilter)
return START_STICKY
}
override fun onDestroy() {
unregisterReceiver(mPasteReceiver)
super.onDestroy()
}
override fun onBind(intent: Intent?): IBinder? = null
inner class PasteReceiver: BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) {
Log.d(TAG,"Paste received.")
}
}
}
Это не работает! 🙁
Я должен указать, что пытаюсь получить событие вставки в буфер обмена.
Комментарии:
1. Убедитесь, что вызывается метод onStartCommand вашего класса обслуживания.
2. Я успешно получил от него сообщение журнала, поэтому я знаю, что оно вызывается :/
3. Не могли бы вы также поделиться кодом службы
4. Я поделился классом в главном сообщении.
5. Вы зарегистрировали свой широковещательный приемник в манифесте?