2017-08-14 12 views
-1

私のAndroidアプリには3つのアクティビティがあります。最初はメインメニューで、ssh接続を開くボタンを押して、ラズベリーパイではさまざまなことをします(アップロードなどのダウンロード)。このプロセスは一般的に15〜20秒かかります。準備が整うと、rpiが作成したファイルが表示される場所に3番目のアクティビティが表示されます。黒い画面の代わりに使うもの

上記の15〜20秒の間、ユーザーは黒い画面だけを見ることができます。

どちらがより簡単で簡単ですか?ユーザーに、要求したファイルがすぐにダウンロードされ、プロセスをバックグラウンドで実行するか、ユーザーがプロセスが終了するまで待機する必要があるように少し移動する読み込みサインを作成するようにユーザーに警告します。誰か私にそれをする方法を教えてもらえますか?

おかげ

+0

これは便利かもしれません:[アンドロイド - ロード、待ってください](https://stackoverflow.com/質問/ 1981156/android-loading-please-wait) –

+1

進捗状況ダイアログボックスを使用してダウンロードプロセスを表示する –

答えて

1

はAsyncTaskまたはスレッドでのブロッキング呼び出しを実行します(AsyncTaskが好ましいです)。実行中は不確定に設定されたProgressBarを表示します。そのバーの下に、遅延について通知するテキストを示します。
AsyncTasksは非常に簡単で、official documentationから始めることができます。

0

は、上記のコードは、それがどのように見えるかを確認する一例であり、おそらくあなたの問題に適応する必要がありますrxjava

notifyTheUserThatTheProcessWasStarted(); 
    Observable.fromCallable(() -> doALongOperation()) 
     .subscribeOn(Schedulers.io()) 
     .observeOn(AndroidSchedulers.mainThread()) 
     .subscribe(() -> notifyTheUserThatTheProcessHasEnded()); 

を見てください。 rxjavaAsyncTaskよりも学ぶことがより困難であるが、それはあなたがより複雑な非同期ロジックを作成できるようになります

https://github.com/ReactiveX/RxJava

関連する問題