聊天应用程序(例如Messenger)如何监听传入的消息,即使它们的活动尚未开始

时间:2018-07-27 09:39:53

标签: android

聊天应用程序(例如Messenger)如何监听传入的消息,即使自in android 3.1 and later this is not possible起尚未开始其活动:

清单:

<service android:name=".ManagerService" android:enabled="true" />
<receiver
    android:name=".BootFinishedReceiver"
    android:directBootAware="true"
    android:enabled="true"
    android:exported="false"
    android:permission="android.permission.RECEIVE_BOOT_COMPLETED">

    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED" />
    </intent-filter>
</receiver>

接收器:

 public class BootFinishedReceiver extends BroadcastReceiver {
       @Override
       public void onReceive(Context context, Intent intent) {
            Intent serviceIntent = new Intent(context, ManagerService.class);
            context.startService(serviceIntent);
       }
   }

由于聊天应用仍以这种方式工作,因此必须采取一些措施。

感谢您提供任何信息或想法

1 个答案:

答案 0 :(得分:0)

您的问题是开放性和广泛性的。但是,当应用程序未运行时,指向您指向广播接收器的链接。 关于同一答案的评论说:

应用程序在首次安装但尚未启动时以及由用户手动停止(在“管理应用程序”中)时处于停止状态。这意味着,用户应在安装后至少启动一次该应用程序以激活该应用程序,然后该应用程序可以正常接收来自操作系统的所有隐式广播。

该应用在刚安装时即被停止。首次启动该应用程序后,即使该应用程序关闭,该应用程序也可以收听广播接收器并运行后台服务。

聊天应用程序基本上实现了socket.io,它可以保持两端的通信。此外,即使应用被终止,您也可以实施FCM来获取通知和消息。

希望您能理解这个概念:)。