在我的项目中,如果应用程序被终止时没有互联网连接,我希望用户在有可用的互联网连接时收到通知。我通过在 Activity 的 onCreate() 上启动服务来做到这一点,然后一旦应用程序被终止并且服务 onTaskRemoved 被触发,就会发生以下代码。但是正如你所看到的,我基本上有一个 while 结构在没有连接并且有连接(并且 while 结构结束)时运行,通知被启动。但我不认为这是代码的正确方法,实际上它只有在终止应用程序和建立 wifi 连接之间的差距很小的情况下才有效。此外,我相信代码在主线程中运行,因为一旦启动通知,我只会在终端上获得“应用程序终止”。我怎样才能解决这个问题?再一次,我希望用户在应用程序被终止后有可用的互联网连接时收到通知。
public void onTaskRemoved(Intent rootIntent) {
if(!isConnected(this)) {
while (!isConnected(this)) {
}
NotificationCompat.Builder builder = new NotificationCompat.Builder(this, Home.CHANNEL_ID).setSmallIcon(R.mipmap.ic_launcher).setContentTitle("Network").setContentText("Network Available");
NotificationManager nNotifyMgr = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
nNotifyMgr.notify(1, builder.build());
}
}