我的Android应用中有3项活动。第一个是主菜单,我按下按钮打开一个ssh连接,在我的覆盆子pi上它做了不同类型的事情(下载上传等)。这个过程通常需要15-20秒,当它准备就绪时,第三个活动出现在我可以看到我的rpi所做的文件的地方。
问题是,在上述15-20秒内,用户只能看到黑屏。
哪个更好更容易?警告用户他/她请求的文件将很快下载并在后台运行该过程或进行一点移动加载标志,以便用户必须等到过程结束。谁能告诉我怎么做/他们?
由于
答案 0 :(得分:1)
在AsyncTask或线程中运行阻塞调用(首选AsyncTask)。在它运行时,显示ProgressBar设置为不确定。在那个栏下方,我会显示一些通知延迟的文字 AsyncTasks非常简单,您可以从official documentation开始。
答案 1 :(得分:0)
查看rxjava
notifyTheUserThatTheProcessWasStarted();
Observable.fromCallable(() -> doALongOperation())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(() -> notifyTheUserThatTheProcessHasEnded());
上面的代码只是一个示例,看看它可能是什么样子,并且可能需要适应您的问题。 rxjava
比AsyncTask
更难学习,但它可以让您创建更复杂的异步逻辑