广播接收器方面与对话

广播接收器方面与对话

本文介绍了广播接收器方面与对话的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想实现以下


  1. 一个活动启动一个后台任务(SyncAdapter),并显示一个对话框。

  2. 后台任务发送广播。

  3. 这些广播应该由对话框中截获。

什么我希望是这样的:

 对话广播
  < -------------------
 好!
  < -------------------
 好!         ....  < -------------------
 好!

不过,我所得到的是这样的:

 对话广播
  < -------------------
  < -------------------         ....  < -------------------    (对话解雇) 好!
 好!         ....
 好!

如上图所示,广播被正确发送,但在对话框关闭后才可被接收。我希望收到他们正在所示的对话框时。换句话说,步骤1和2都工作正常,但三是工作部分。我想可能是问题是,我没有使用的广播接收器的适当的上下文。

所以我的问题是:我应该使用哪种情况下认购的更新(即接收广播,不给他们),使他们能够通过对话被拾起正在显示时,

我试着 Activity.this Activity.this.getBaseContext() Activity.this.getApplicationContext() dialog.getContext() DialogFragment.getActivity()无济于事。

只是为了澄清:我用的BroadcastReceiver模式多次,用它对话时,旁边我只是遇到了麻烦。


解决方案

事实:


  • 活动(A)显​​示对话框(D)

  • 未知类型(财产以后)命名的后台任务(T)

  • (T)将广播到广播接收器(R)

  • (R)应该解雇(D)

问题:


  • (T)你的意思是类从AbstractThreadedSyncAdapter出来的?

  • 请您somhow的(T)启动和显示(D)后完成(A)?

结论:


  • 不管,如果你的(A)你做什么创建和显示(D)是负责解雇(D)及做befor中的onStop得到()状态

  • 换句话说,如果活动将不被解雇对话框死了,你会得到

  • & when you try manipulate the dialog you will get:

The second part of your question, which concerns context

  • you always can check which context is assigned to Dialog by method

  • usen it to match other context

  • also u can use Class method

  • if u wanna match context to class (for example Activity u use)

and I would forget to add:

you can always START DIALOG USING APLICCATION CONTEXT :)

& one more thing:

any stuff involving UI shoul by done on UI THREAD in case you will forgot & get

edit:

I DONT SEE ANY PROBLEM : WORKING SOLUTION

这篇关于广播接收器方面与对话的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-28 01:48