Кто-нибудь знает, что не так с моим широковещательным приемником, работающим в службе?

#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. Вы зарегистрировали свой широковещательный приемник в манифесте?