广播接收器停止

时间:2019-10-01 22:27:09

标签: broadcast

在我的应用中,我有一个广播接收器。


我从 firebase 收到了一条消息,该消息向接收者发送了一个意图。

接收方更新应用程序的状态,并在检查播放器是否启动后再进行检查。

一段时间打开我的应用后,接收器关闭。
当消息到达时,它什么也不做。

为什么会出现这个问题?
谢谢你,我的英语很抱歉。

接收者:

class CustomNotificationReceiver(val presenter: OrderListContract.Presenter,
                             val ordstatsfilt: String?) : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
    if(intent.action == "com.woocommerce.app.NOTIFICATION") {
        presenter.loadOrders(ordstatsfilt, forceRefresh = true)
        if (inlavorazione > 0) {
            try {                 
                var uri: Uri? = Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://" + context.packageName + "/" + R.raw.cha_ching)
                        ?: null
                Log.d("debugsto prendendo il file", "valore uri = $uri")
                //verifico l'uri
                Log.d("debugsto prendendo il file", "debudcprima" + uri)
                if (uri != null) {
                    Log.d("debugsto prendendo il file", "Sono dentro if uri")
                    if (!player.isPlaying && urice==0) {
                        Log.d("firebase", "sono nell'if")
                        player.setDataSource(context, uri)
                        Log.d("firebase", "sono nell'if2")
                        player.prepare();
                        urice=1
                    }
                    if (inlavorazione > 0) {
                          if (!player.isPlaying) {
                            Log.d("debugparte il file", "debugparteil file")
                            try {
                                Handler().postDelayed({
                                    player.start()
                                }, 5000)
                            } catch (e: Exception) {
                                e.printStackTrace()
                            }

                        }
                    }/*else{
                    if(player.isPlaying) player.stop()
                }*/


                    player.setOnCompletionListener {
                        if (inlavorazione > 0) {
                            if (!player.isPlaying) {

                                try {
                                    Handler().postDelayed({
                                        player.start()
                                    }, 3000)
                                } catch (e: Exception) {
                                    e.printStackTrace()
                                }
                            }
                        }/*else{
                        if(player.isPlaying) {player.stop()
                            inlavorazione=0}
                    }*/
                    }
                }
            } catch (e: Exception) {
                e.printStackTrace();
            }
        }
    }
}

意图:

 Intent().also { intent ->
        intent.setAction("com.woocommerce.app.NOTIFICATION")        //tag per l'azione
        //intent.putExtra("data", "Notice me senpai!")
        sendBroadcast(intent) //invio l'intent tramite broadcast
    }

...

消息到达,inlavorazione ++,发送意图,从db接收接收器,并播放声音。一段时间后,接收器显然不会停止。它不会更新或播放声音。

0 个答案:

没有答案