WEBVTT

00:00.140 --> 00:01.130
お帰りなさい｡ 

00:01.130 --> 00:07.250
それではAndroid Studioを開き､ 新規プロジェクトを作成し､ Empty Views Activityを選択して､

00:07.250 --> 00:09.800
Work Managerアプリと名付けましょう｡

00:09.800 --> 00:11.630
だからJavaのように "finish "をクリックする｡ 

00:11.630 --> 00:16.790
そしていつものように､ ワークマネージャーの依存関係を追加する必要がある｡ 

00:16.820 --> 00:22.370
デベロッパーへ アンドロイド comでAndroid Work Managerを検索する｡ 

00:22.370 --> 00:30.680
あるいは､ 単にアンドロイドに行くこともできる｡  com jetpack slash Android slash releases slash work.

00:30.680 --> 00:34.880
Javaを使用している場合は､ 下にスクロールしてこれを入手してください｡ 

00:34.880 --> 00:43.880
もしKotlin Coroutinesがこれをコピーするなら､ Gradle Scripts buildへ｡  gradleで依存関係を選択する｡ 

00:43.880 --> 00:46.790
ワークマネージャーの依存関係の同期を貼り付ける｡ 

00:46.790 --> 00:54.110
ここで閉じて､ 新しいJavaクラスを作り､ それをワーカーと名付けます｡ 

00:54.110 --> 00:58.640
アンドロイドのドットワークからワーカーを延長する｡ 

00:58.670 --> 01:04.460
このクラスでは､ 実行したいバックグラウンド・タスクを定義する｡ 

01:04.460 --> 01:09.350
Alt+Enterでメソッドを実装しよう｡ 

01:09.350 --> 01:13.070
そしてここには､ 仕事をするという一つの方法しかない｡ 

01:13.070 --> 01:15.470
エンターキーを押せば､ これが我々のやり方だ｡ 

01:15.470 --> 01:23.330
Doworkメソッドは､ ワーク・マネージャーが提供するバックグラウンド・スレッドで非同期に実行される｡ 

01:23.330 --> 01:26.420
そこで､ このメソッドの中で､ ある作業をする｡ 

01:26.420 --> 01:29.450
1000まで数えるよ｡ 

01:29.450 --> 01:30.140
そのためだ｡ 

01:30.140 --> 01:34.760
forループを作り､ ゼロに等しくする｡ 

01:34.790 --> 01:45.560
私は1000未満である｡

01:45.560 --> 01:48.530
というわけで､ カウントはプラス1｡ 

01:48.950 --> 01:56.990
do workメソッドから返される結果は､ 作業が成功したかどうか､ 失敗した場合はここで作業を再試行すべきかどうかを､

01:56.990 --> 02:03.530
作業マネージャーサービスに通知する｡

02:03.530 --> 02:07.190
この場合はresult dotを使う｡ 

02:07.220 --> 02:11.540
リトライ､ 失敗､ 成功の3つのメソッドがある｡ 

02:11.540 --> 02:13.220
私は成功を使う｡ 

02:13.220 --> 02:17.660
結果のドットsuccessは､ 作業が正常に終了したことを示す｡ 

02:17.660 --> 02:20.990
結果 ドットの失敗方法 作品は失敗した｡ 

02:20.990 --> 02:22.790
結果ドット再試行｡ 

02:22.820 --> 02:30.020
作業は失敗したので､ 再試行ポリシーに従って別の機会に再試行すべきである｡ 

02:30.020 --> 02:34.220
このメソッドの内部で､ Alt+.

02:34.220 --> 02:39.710
superにマッチするコンストラクタを作成し､ これがワーカー・メソッドとなる｡ 

02:39.710 --> 02:42.830
メインのアクティビティ・ドットXMLファイルを見てみよう｡ 

02:42.830 --> 02:45.200
そしてここにボタンを作る｡ 

02:53.240 --> 02:57.020
制約を推測し､ 私はテキストを変更する｡ 

03:00.790 --> 03:01.930
そして､ これだ｡ 

03:01.930 --> 03:03.940
では､ このウィジェットを初期化してみよう｡ 

03:07.950 --> 03:09.210
プロジェクトをきれいにする｡ 

03:09.210 --> 03:15.390
ID によるビューの検索メソッドでエラーが発生した場合は､ ワーカーのインスタンスを作成してみましょう｡ 

03:15.420 --> 03:21.630
仕事依頼wは､ 新しい1回限りの仕事依頼に等しい｡ 

03:21.630 --> 03:24.780
また､ 定期的な仕事の依頼もできる｡ 

03:24.780 --> 03:32.880
ワンタイムワークリクエストは､ 1回限りのバックグラウンドタスクの実行要求を表す｡ 

03:32.880 --> 03:38.820
それなら､ ドットビルダーを使って､ このビルダーを使う必要がある｡ 

03:38.820 --> 03:43.620
ここで､ ワーカーのクラスを指定する必要がある｡ 

03:43.620 --> 03:49.590
そこで､ ドットビルド・メソッドの前に作ったワーカードットクラスを使うことにする｡ 

03:49.590 --> 03:56.580
私のワーカードットクラスは､ ワーカークラスを拡張して作ったカスタムクラスです｡ 

03:56.580 --> 04:07.170
これは､ ワーカーの作業方法で実行されるバックグラウンドタスクを定義します｡

04:07.170 --> 04:19.110
このメソッドは､ 指定されたワーカークラスの制約と入力データでリクエストを構築することで､ 1回限りの作業リクエストの作成を確定する｡

04:19.140 --> 04:29.610
結果として得られるW変数はワークリクエスト型であり､ ワークマネージ ャにリクエストをエンキューするために使用できる｡

04:29.610 --> 04:37.140
そこで､ 1回限りの仕事依頼を作成したら､ それを仕事依頼w rと名づける｡ 

04:37.140 --> 04:47.670
デモワーカーまたは my Worker dot Java クラスで定義されたバックグラウンドタスクを実行するために､ ワークマネージャを使ってそれをエンキューすることができます｡

04:47.670 --> 04:56.280
ワークマネージャは､ 指定された制約と入力データを考慮して､ そのタスクのスケジューリングと実行を処理する｡

04:56.280 --> 05:01.260
そこで､ ここではクリック・リスナーに設定されたbtnドットに､ クリック・リスナーに設定された新しいビューを表示します｡ 

05:01.260 --> 05:11.490
ユーザーがボタンをクリックすると､ リクエストをエンキューし､ リクエストを実行し､ My Workerクラスで定義されたバンクグラウンドタスクを実行する必要があります｡

05:11.490 --> 05:13.680
だから､ 私はこれを実行するつもりだ｡ 

05:13.680 --> 05:24.450
ワーカーが実行される正確な時間のカウントは､ ワーカーが要求する制約とシステムの最適化に依存します｡

05:24.450 --> 05:29.670
ワークマネジャーは､ このような制約のもとで最高の動作をするように設計されている｡ 

05:29.670 --> 05:34.710
まず､ ワークマネージャーのドットゲット・インスタンスから始めよう｡ 

05:34.710 --> 05:42.480
そしてここで､ コンテキストを取得するアプリケーション・コンテキスト・メソッドのドット・エンキューを渡す必要がある｡ 

05:42.480 --> 05:53.610
そしてここで､ バックグラウンド・タスクを管理する中心的なコンポーネントであるワークマネージャー・ドットゲット・インスタンスに作業リクエストを渡す必要がある｡

05:53.610 --> 06:02.160
ワーク・マネージャーのインスタンスを取得するには､ get instanceメソッドを使い､ アプリケーション・コンテキストを渡す｡

06:02.190 --> 06:03.780
アプリケーションコンテキストを取得します｡ 

06:03.780 --> 06:05.310
enqueueメソッド｡ 

06:05.310 --> 06:12.720
このメソッドは､ コード w r で実行する作業要求をエンキューするために使用される｡ 

06:12.720 --> 06:20.220
ワークリクエストは､ バックグラウンドでスケジュールして実行したいワークリクエストインスタンスである｡ 

06:20.220 --> 06:31.140
これはケースによって1回だけの作業依頼と定期的な作業依頼があり､ 今回は1回だけの作業依頼を使用します｡

06:31.170 --> 06:32.970
では､ アプリケーションを実行してみよう｡ 

06:32.970 --> 06:36.090
このエラーに遭遇した場合､ 対処法はとても簡単だ｡ 

06:36.090 --> 06:44.000
Virgin for Android Gradleプラグインの推奨コンパイルSDKの最大値は80です｡  10. 0は33である｡ 

06:44.010 --> 06:48.780
Androidのマニフェストを見て､ ここにターゲットAPIがある｡ 

06:48.810 --> 06:50.490
33にするよ｡ 

06:50.520 --> 06:51.870
アプリケーションをもう一度実行してください｡ 

06:51.870 --> 06:59.670
また､ ここを31から34に変更する必要があり､ ターゲットSDKは34です｡ 

06:59.670 --> 07:01.290
アプリケーションをもう一度実行してください｡ 

07:01.290 --> 07:02.100
さあ､ 始めよう｡ 

07:02.100 --> 07:05.970
LogcatでTanguyを検索する｡ 

07:10.970 --> 07:16.720
このボタンをクリックすると､ バックグラウンドでカウントが行われるのがわかる｡ 

07:16.730 --> 07:18.350
おめでとう､ みんな！

07:18.350 --> 07:23.090
アプリケーションにワークマネージャーを追加することに成功した｡ 
