شرح كيفية نقل البيانات من workmanager الى activity في اندرويد ستوديو
اذا كنت تبحث عن دوره تعلم تطوير تطبيقات الاندرويد. فنحن في جي كودرس سنقدم لك كثيرا من الاكواد والشروحات وشرح للكود في هذا المجال , يمكنك عزيزي القارئ التوجه الى القسم المختص الذي تريد تعلمه وستجد بحر من الاكواد البرمجيه الكثيره التي يمكنك من خلالها تعلم اللغه وايضا لدينا قناه على موقع اليوتيوب نقدم فيها بعض الشروحات حول تطوير تطبيقات الاندرويد و في الايام المقبله باذن الله تعالى سوف ننتقل معكم الى فلاتر .
حيث اننا نعلم برمجه تطبيقات الاندرويد وصناعة التطبيقات امر غير سهل ولكن يحتاج منك اولا الى تعلم احد لغات البرمجه مثل لغة ألجافا فهي لغه كبيره جدا و تستخدم بكثره في تطوير التطبيقات واذا فهمت لغه الجافا بشكل جيد يمكنك ان تتعلم اي لغه برمجه اخرى بسهوله لان لغه الجافا تعد من اصعب اللغات تقريبا لذلك حاول ان تتعلمها وايضا لا تقلق نحن نقدم في موقعنا شرحات في اكواد الجافا وشرح للغه وتقريبا في كل لغات البرمجه فقط انتقل الى القسم المختص وانزل الى اول مقاله وستجد شرح اللغه وبعدها سوف تجد مقدم عليها كثير من الاكواد متى تفهم الفكره منها.
واذا كنت تبحث عن دوره تطوير تطبيقات الاندرويد في ايضا في موقعنا , نقدم الكثير من الاكواد البرمجيه والمشاريع مفتوحه المصدر التي يمكنك من خلالها تعلم لغات البرمجه وتطوير تطبيقات الاندرويد دون الحاجه الى اخذ دوره في هذا المجال لذلك دائما حاول ان تتابع الموقع لاننا نقوم بتنزيل الكثير من الاكواد باستمرار في لغات برمجه كثيره جدا والهدف هو تثقيف المحتوى العربي وجعله غني بالاكواد المطلوبه لكل المبرمجين في مختلف اللغات .
خطوات ارسال البيانات من الورك مانجر الى الاكتفتي
الامر بيسط جدا وسوف نكمل على الكود السابق كل ما سنقوم به هو عمل تعريف لكلاس Data ونقوم بعمل له putString ليتم بعد ذلك اعطاءة key و value وسوف نقوم بخطوة بسيطة وهي اننا سوف نرسل للاكتفتي كلمة success يمكنك تغيرها وارسال بيانات الامر راجع لك وفي النهاية في مرحلة الreturn نرسل الريفرنس الخاص بكلاس Data وكان باسم data .
send from workmanager to activity
@NonNull
@Override
public Result doWork() {
String name = getInputData().getString("name");
Map<String, Object> names = new HashMap<>();
names.put("name", name);
Log.i(TAG, "doWork: ");
firestore.collection("names").document().set(names)
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
Log.i(TAG, "onComplete: MyWorkManager firebase ");
}
});
Data data = new Data.Builder()
.putString("result" , "success")
.build();
return Result.success(data);
}
بعد اتمام الخطوة السابقة انت ارسلت البيانات الان نريد استقبالها بكل بساطة سوف نقوم باستقبالها في WorkInfo ونخرجها في logi لذلك سوف نقوم بعمل logi واعتقد انكم قمتم بذلك وبعدها سوف نضع الكود البيسط وهو workInfo.getOutputData().getString("result") ولو نلاحظ انه هنا لكي نحصل على البيانات استلامناها بنفس الkey الذي ارسلنا به وهذة هي الفكرة من استخدام key واعتقد شرحناها من قبل في دروس كثيره جدا ويجب عليكم معرفتها بشكل جيد لانها مهمه جدا .
WorkManager.getInstance(this).getWorkInfoByIdLiveData(uuid).observe(this, new Observer<WorkInfo>() {
@Override
public void onChanged(WorkInfo workInfo) {
if (workInfo !=null && workInfo.getState().isFinished()) {
Log.i(TAG, "onChanged: success" + workInfo.getOutputData().getString("result"));
}
}
});
لمزيد من الدروس والشروحات يمكنك مشاهدة المقالات التالية :
- شرح كيفية رفع المشروع Project اندرويد ستوديو الخاص بك على منصة Github
- كيف يمكن تحديث ملفات المشروع Project اندرويد ستوديو الخاص بك على منصة Github
- كيف تقوم باخفاء AppBar اثناء النزول الى الاسفل في اندرويد ستوديو
- كيفية عرض PDF view داخل برنامج اندرويد ستوديو وعمل RecyclerView لعرض اكثر من pdf .
- شروحات اندرويد ستوديو بالعربي : شرح putExtra وكيفية تمرير البيانات من خلاله