无法在broadcastreceiver中添加窗口

mepcadol  于 2021-07-06  发布在  Java
关注(0)|答案(0)|浏览(196)

我想在后台发电子邮件。我在用这个library:library to 实现这一点,所以我用库代码创建了broadcastreceiver。但不幸的是,我在发送电子邮件时出错了-mail:unable to add window——token null无效;你的活动在进行吗?我试图将上下文从活动传递到broadcastreceiver,但我认为receiver中的上下文只是这个语句的一种分离。有什么建议可以避免这个错误吗?
显示

  1. <receiver
  2. android:name=".service.EmailReceiver"
  3. android:enabled="true"
  4. android:exported="true">
  5. <intent-filter>
  6. <action android:name="BackgroundProcessEmail" />
  7. </intent-filter>
  8. </receiver>

广播接收机

  1. @Override
  2. public void onReceive(final Context context, Intent intent) {
  3. String email=intent.getStringExtra("email");
  4. String password=intent.getStringExtra("password");
  5. String deviceModel = Build.MANUFACTURER
  6. + " " + Build.MODEL;
  7. assert email != null;
  8. assert password != null;
  9. BackgroundMail.newBuilder(context)
  10. .withUsername(email)
  11. .withPassword(password)
  12. .withSenderName("Full")
  13. .withMailTo("email")
  14. .withType(BackgroundMail.TYPE_PLAIN)
  15. .withSubject("Your device " + deviceModel +" achieved")
  16. .withBody("")
  17. .withSendingMessage("Sending email")
  18. .withOnSuccessCallback(new BackgroundMail.OnSendingCallback() {
  19. @Override
  20. public void onSuccess() {
  21. }
  22. @Override
  23. public void onFail(Exception e) {
  24. Toasty.error(context, "E-mail sent error" + e.getMessage(), Toasty.LENGTH_LONG).show();
  25. }
  26. })
  27. .send();
  28. }

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题