القائمة الرئيسية

الصفحات

كيفية تشغيل اكثر من workmanager في اكثر نفس الوقت في اندرويد ستوديو

  

كيفية تشغيل اكثر من workmanager في اكثر نفس الوقت

كيفية تشغيل اكثر من workmanager في اكثر نفس الوقت في اندرويد ستوديو


في هذا الدرس يعد من اخر الدروس في الورك مانجر يمكنكم بعد ذلك البحث عن امثلة حول استخدام work manager ونحن سوف نقدم لكم ايضا امثلة في الايام القادمه باذن الله ودرس اليوم سوف نشرح لكم كيف تستطيع تشغيل work manager في اندرويد ستوديو بالتوالي والتوازي يعني تشغيل اكثر من واحد في نفس الوقت وتشغيل كل واحد وعندما ينتهي الاول يبدء الثاني وهكذا وهذا هو محور درسنا اليوم .


اذا كنت تبحث عن دوره تعلم تطوير تطبيقات الاندرويد. فنحن في جي كودرس سنقدم لك كثيرا من الاكواد والشروحات وشرح للكود في هذا المجال , يمكنك عزيزي القارئ التوجه الى القسم المختص الذي تريد تعلمه وستجد بحر من الاكواد البرمجيه الكثيره التي يمكنك من خلالها تعلم اللغه وايضا لدينا قناه على موقع اليوتيوب نقدم فيها بعض الشروحات حول تطوير تطبيقات الاندرويد و في الايام المقبله باذن الله تعالى سوف ننتقل معكم الى فلاتر . 


حيث اننا نعلم برمجه تطبيقات الاندرويد وصناعة التطبيقات امر غير سهل ولكن يحتاج منك اولا الى تعلم احد لغات البرمجه مثل لغة ألجافا فهي لغه كبيره جدا و تستخدم بكثره في تطوير التطبيقات واذا فهمت لغه الجافا بشكل جيد يمكنك ان تتعلم اي لغه برمجه اخرى بسهوله لان لغه الجافا تعد من اصعب اللغات تقريبا لذلك حاول ان تتعلمها وايضا لا تقلق نحن نقدم في موقعنا شرحات في اكواد الجافا وشرح للغه وتقريبا في كل لغات البرمجه فقط انتقل الى القسم المختص وانزل الى اول مقاله وستجد شرح اللغه وبعدها سوف تجد مقدم عليها كثير من الاكواد متى تفهم الفكره منها. 


واذا كنت تبحث عن دوره تطوير تطبيقات الاندرويد في ايضا في موقعنا , نقدم الكثير من الاكواد البرمجيه والمشاريع مفتوحه المصدر التي يمكنك من خلالها تعلم لغات البرمجه وتطوير تطبيقات الاندرويد دون الحاجه الى اخذ دوره في هذا المجال لذلك دائما حاول ان تتابع الموقع لاننا نقوم بتنزيل الكثير من الاكواد باستمرار في لغات برمجه كثيره جدا والهدف هو تثقيف المحتوى العربي وجعله غني بالاكواد المطلوبه لكل المبرمجين في مختلف اللغات .


كيفية تشغيل الworkmanager بالتوالي


هذا الكود هو المسؤول عن تشغيل اكثر من worker عن طريق التوالي بمعنى لو عندك اكثر من واحد يتم تشغيل واحد تلو الاخر بمعنى الاول يبدء وعندما ينتهي يبدء الثاني وهكذا , مثلا لديك واحد يقوم برفع الصوره واخر يقوم بعرض الصورة تقوم بعمل هذة الخطوات وعندما ينتهي الاول يبدء الثاني وهكذا .


        // Run work manager sequence
        WorkManager.getInstance(this)
                .beginWith(oneTimeWorkRequest)
                .then(oneTimeWorkRequest)
                .then(oneTimeWorkRequest)
                .enqueue();
                


كيفية تشغيل الworkmanager بالتوازي


هذا الكود لو عندك مثلا اكثر من worker وتريد تشغيلهم في نفس الوقت وعندما ينتهم تقوم بتشغيل الثالث بمعنى يبدء الاول والثاني في العمل وعندما ينتهي يبدء الثالث في العمل .


        // Run work manager parallel then sequence
        WorkManager.getInstance(this)
                .beginWith(Arrays.asList(oneTimeWorkRequest , oneTimeWorkRequest))
                .then(oneTimeWorkRequest)
                .enqueue();
                


الكود كامل


  public class MainActivity extends AppCompatActivity {
    private static final String TAG = "MainActivity";

  @Override
  protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Data data = new Data.Builder()
                .putString("name", "ahmed mahmoud")
                .build();

        Constraints constraints = null;
        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
            constraints = new Constraints.Builder()
                    .setRequiredNetworkType(NetworkType.CONNECTED)
                    .setRequiresDeviceIdle(false)
                    .build();
        } else {
            constraints = new Constraints.Builder()
                    .setRequiredNetworkType(NetworkType.CONNECTED)
                    .build();
        }

        // run workmanager one time .
        OneTimeWorkRequest oneTimeWorkRequest = new OneTimeWorkRequest.Builder(MyWorkManager.class)
                .setInputData(data)
                .setConstraints(constraints)
                .addTag("My workManager upload")
                .build();

        // Run work manager sequence

        WorkManager.getInstance(this)
                .beginWith(oneTimeWorkRequest)
                .then(oneTimeWorkRequest)
                .then(oneTimeWorkRequest)
                .enqueue();

        // Run work manager parallel then sequence
        WorkManager.getInstance(this)
                .beginWith(Arrays.asList(oneTimeWorkRequest , oneTimeWorkRequest))
                .then(oneTimeWorkRequest)
                .enqueue();

        // start work manager
        WorkManager.getInstance(this).enqueue(periodicWorkRequest);

        }
}


لمزيد من الاكواد والشروحات في برنامج android studio يمكنكم مشاهدة المقالات التالية 


التنقل السريع