【问题标题】:Android: determining the current context to display an alertAndroid:确定当前上下文以显示警报
【发布时间】:2010-10-20 22:43:07
【问题描述】:

我正在使用Intents 从 Screen-A 调用 ZXing 扫描仪。扫描完成后,控制权当然会返回到 Screen-A 后面的代码,我会在调用 Screen-B 之前做一些其他工作。

问题是:在此工作期间屏幕是黑色的,我无法确定用于显示“工作中...”Toast/msgbox 的正确上下文。有什么帮助或建议吗?

【问题讨论】:

  • 对ZXing扫描仪不熟悉。它会显示一些东西,还是只是在后台执行一个任务,当它完成时发出信号?
  • 抱歉没有更好地解释。 ZXing 是一个允许相机扫描条形码的库。因此,在我的示例中,我将打开 Screen-A 并对 ZXing 进行意图调用(使用 startActivityForResult),然后激活相机、捕获和解码条形码。从 ZXing 返回后,我无法引用 Screen-A 上下文来显示“等待”消息。我不确定如何确定可用的上下文,或者如果没有,如何将上下文再次带到前台。帮忙?

标签: android multithreading android-intent android-context offloading


【解决方案1】:

在它自己的thread 中执行您的“work period”,而该线程在后台工作,Android 会将控制权传递给可以显示 ProgressBar 的 Screen-A。 “工作时间”线程会将消息传递给屏幕-A,以更新衡量进度的变量的值。这是开始使用 Android 线程的好地方:

http://developer.android.com/guide/appendix/faq/commontasks.html#threading

【讨论】:

    【解决方案2】:

    你不能在调用 ZXing 之前显示ProgressDialog,然后在onActivityResult() 中关闭它吗?

    【讨论】:

    • 好主意。当我尝试这个时,我可以看到进度对话框出现在扫描窗口之前,但扫描后它又回到黑屏。显然 ZXing 要么坚持另一个上下文,要么暂时提升另一个上下文。无论哪种方式,我都不确定如何确定当前上下文以显示“工作”对话框。其他想法?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多