
[英]handleWindowVisibility: no activity for token android.os.BinderProxy
[英]Android W/ActivityThread: handleWindowVisibility: no activity for token android.os.BinderProxy
我使用带有 BroadcastReceiver 的导航 UI 收到警告。 但是,一切正常,这只是一个警告,但我担心它最终会导致一些错误或崩溃。 这是它发生的流程:
我用 AlarmManager 设置了一个闹钟。 通知意图是 BroadcastReceiver。
broadcastReceiver onReceive 对 DB 进行异步调用:
@Override public void onReceive(Context context, Intent intent) { setSharedPreferences(context); final PendingResult pendingResult = goAsync(); fetchDataFromDB(context, pendingResult); }
fetchDataFromDB 使用 RxJava:
appDatabase.dataDao().getData(id).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe( data -> onNext(data, context.getApplicationContext(), pendingResult), throwable -> onError(throwable, pendingResult) );
我想使用 JobService,但它适用于 API > 21,而且调用并不需要很长时间,所以我只是将 goAsync 与 RxJava 一起使用。
onNext 基本上创建了一个带有待处理意图的通知:
Intent notificationIntent = new Intent(context.getApplicationContext(), NotificationActivity.class); pendingIntent = PendingIntent.getActivity(context.getApplicationContext(), Constants.NOTIFICATION_ID, notificationIntent, PendingIntent.FLAG_CANCEL_CURRENT);
到目前为止一切都很好,我收到了通知,当我点击通知打开 NotificationActivity 时,我收到了警告:
W/ActivityThread:handleWindowVisibility:令牌 android.os.BinderProxy 没有活动
NotificationActivity,它应该是根据通知的未决意图打开的,正确打开,没有错误或崩溃。
作为额外信息,此 NotificationActivity 是除主 Activity 之外的唯一“额外”活动,因为我使用单活动方法进行导航。 由于 NotificationActivity 不是正常流程的一部分,因此这是清单上的配置:
“android:launchMode="singleInstance"
不确定这是否也是一个原因。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.