All right, here's a big one.
Finish the SynchAdapter,
making it fetch the weather
and store it in the database.
Alter the updateWeather function
within the ForecastFragment
to start a sync with the SyncAdapter.
Some hints here.
Pull the code from
on handle intent into our SyncAdapter.
On handle intent is inside
of our Sunshine service.
The good news is that abstract threaded
sync adapter provides a background thread
to run the server fetch on,
just like intent service does.
Also, just fetch the location
query from our utility class.
Eventually, we want to run syncs
like this without
any involvement of the user.
Finally, make the sync adaptor run
when we call Update Weather.
.حسنًا، إليكم مسألة هامة
,قوموا بإنهاء SynchAdapter
بحيث يجلب الطقس
.ويخزنه في قاعدة البيانات
ثم قوموا بتبديل الدالة updateWeather
ضمن ForecastFragment
.لبدء المزامنة باستخدام SyncAdapter
.فيما يلي بعض التلميحات
اسحبوا التعليمة البرمجية من
.الهدف عند المعالجة إلى SyncAdapter
يوجد الهدف عند المعالجة ضمن
.خدمة Sunshine
والأخبار الجيدة هي أن محول المزامنة
المطلق يوفر سلسلة عمليات في الخلفية
،لتشغيل الخادم
.كما هو الحال مع خدمة معالجة الأهداف
كذلك، يجب فقط جلب استعلام
.الموقع من فئة الأداة المساعدة
وفي النهاية، نحن نرغب في تشغيل مزامنات
مثل هذه، بدون
.أي مشاركة من المستخدم
وأخيرًا، يجب تشغيل محول المزامنة
.عند استدعاء تحديث المناخ
Muy bien, aquí va una difícil.
Finaliza SyncAdapter
para que recupere el clima
y lo guarde en la base de datos.
Modifica la función updateWeather
en ForecastFragment
para iniciar una sincronización
con SyncAdapter.
Unas cuantas cosas.
Usa el código de onHandleIntent
para nuestro SyncAdapter,
que se encuentra en el servicio Sunshine.
La buena noticia es
que AbstractThreadedSyncAdapter
proporciona un hilo en segundo plano
para ejecutar fetch en el servidor,
tal como hace IntentService.
También recupera la consulta
de ubicación de la clase utility.
Al final, podremos ejecutar
sincronizaciones como esta
sin ninguna intervención del usuario.
Para terminar, haz que se ejecute
SyncAdapter al invocar updateWeather.
Baiklah, ini yang penting.
Selesaikan SyncAdapter,
buatlah pengumpulan cuaca dan simpan itu
di basis data.
Ubah fungsi updateWeather
di dalam ForecastFragment untuk memulai
sinkronisasi dengan SyncAdapter.
Ini ada beberapa petunjuk.
Tarik kode dari OnHandleIntent
ke SyncAdapter kita.
OnHandleIntent terdapat di dalam
layanan Sunshine kita.
Kabar baiknya adalah
SyncAdapter berutas abstark tersebut
menyediakan suatu ulir latar belakang
untuk menghidupkan peladen pengambil data,
seperti yang dilakukan intent service.
Ambilkan juga kueri lokasi
dari kelas utilitas kita.
Nantinya, kita ingin menyinkronkan
seperti demikian
tanpa keterlibatan apapun dari pengguna.
Akhirnya, buat SyncAdapter berjalan
ketika kita memanggil updateWeather.
では 難しい問題です
SyncAdapterを完成して天気を取得し
データベースに保存しましょう
SyncAdapterで同期を始めるように
ForecastFragment内の
updateWeather関数を変えましょう
ヒントがあります
onHandleIntentからコードを持ってきて
SyncAdapterに入れましょう
onHandleIntentは
SunshineのServiceの中にあります
AbstractThreadedSyncAdapterがサーバ取得の
バックグラウンドスレッドを提供しています
ちょうどIntentのServiceと同じです
またutilityクラスから位置のクエリを取得します
ユーザは何もしなくても同期するようにします
updateWeatherを呼び出す時に
SyncAdapterを実行させましょう
좋아요. 어려운 문제입니다
SyncAdapter를 마무리해서
날씨 데이터를 가져오고
데이터베이스 안에 저장하도록 하세요
ForecastFragment 내의
updateWeather 기능을 수정해서
SyncAdapter와 동기화를 시작하도록 하세요
몇 가지 짚고 넘어가죠
코드를 on handle intent에서부터
SyncAdapter로 끌어오세요
On handle intent는 Sushine Service 안에 있습니다
좋은 소식은, AbstractThreadedSyncAdapter는
그 위에 서버 페치를 실행하기 위해
배경 스레드를 제공한다는 것이에요
Intent Service가 하는 것 처럼요
또한 location 쿼리는 그냥
utility 클래스에서 불러오세요
나중에 가서는
사용자의 어떤 개입도 없이
이런 식으로 동기화를 실행하는 게 목적이에요
마지막으로, UpdateWeather를 호출하면
SyncAdapter가 실행하도록 하세요
Certo, aqui vai uma boa.
Termine o SynchAdapter,
fazendo ele buscar os dados de tempo
e armazenando-os no banco de dados.
Altere a função updateWeather
no ForecastFragment para
começar a sincronizar com o SyncAdapter.
Algumas dicas.
Coloque o código de
OnHandleIntent no SyncAdapter.
OnHandleIntent está dentro
do serviço Sunshine.
A boa notícia é que AbstractThreadedSyncAdapter
fornece um thread em segundo plano
para executar ServerFetchOn,
da mesma forma que o serviço de intenção.
Além disso, use a consulta de
localização da classe de utilitário.
Eventualmente, vamos querer executar
sincronizações como esta sem nenhum
envolvimento do usuário.
Por fim, execute o adaptador de sincronização
quando chamarmos o UpdateWeather.
Хорошо, а вот кое-что огромное. Закончите
SyncAdapter, заставив его сделать выборку
данных погоды
и сохранить их в базе данных. Измените
функцию
updateWeather в ForecastFragment,
чтобы начать
синхронизацию с помощью SyncAdapter.
Несколько подсказок. Перетащите код из
onHandleIntent в наш SyncAdapter.
onHandleIntent находится в нашем
SunshineService.
Хорошая новость заключается в том, что наш
абстрактно-потоковый адаптер синхронизации
обеспечивает фоновый поток для запуска
получения данных с сервера так же,
как это делает целевой сервис.
Также просто извлеките
locationQuery
из нашего служебного класса.
В конечном итоге мы хотим
запустить подобный синхронизатор
без всякого
вмешательства со стороны пользователя.
И наконец, запустите
адаптер синхронизации, когда мы вызовем
updateWeather.
Ổn rồi, đây là một vấn đề lớn này.
Hoàn thành SynchAdapter. làm nó lấy weather về
và lưu nó trong database.
Thay đổi hàm updateWeather
trong ForecastFragment để bắt đầu việc sync với SyncAdapter.
Có vài gợi ý ở đây. Lấy code từ
on handle intent vào trong SyncAdapter củachúng ta.
onHandleIntent ở trong Sunshine service của chúng ta.
Tin tốt là abstract threaded
SyncAdapter có cung cấp một background thread
để lấy thông tin từ server, cũng như intent service làm.
Ngoài ra, chỉ việc lấy location query
từ utility class.
Sau cùng, ta muốn chạy syncs như này mà không
có sự tham gia của người dùng.
Cuối cùng, làm SyncAdapter chạy khi ta gọi UpdateWeather.
好的 现在有一项重要任务
完成 SynchAdapter 使其能够获取天气信息
并将其存储在数据库中
更改 ForecastFragment 中的
updateWeather 函数 以便通过 SyncAdapter 开始同步
提示下 将代码从 onHandleIntent
拉取到 SyncAdapter 中
onHandleIntent 位于 Sunshine 服务中
好消息是 抽象的线程
同步适配器提供了后台线程
从而像 intent 服务一样运行服务器获取操作
此外 从工具类中
获取位置查询
最后 我们希望能够不劳用户动手
即可运行同步操作
最终一旦调用“Update Weather”即可运行同步适配器