نمایش نتایج 1 تا 3 از 3

نام تاپیک: ترکیب BroadcastReceiver و JobService برای دریافت اطلاعات از اینترنت در پس زمینه

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1

    ترکیب BroadcastReceiver و JobService برای دریافت اطلاعات از اینترنت در پس زمینه

    سلام؛
    من نیاز دارم در پس زمینه، طی دوره زمانی مشخص و با اطلاع از اتصال به شبکه اینترنت، یک سری اطلاعات رو از سورس دریافت کنم. مشکلی که من دارم، نا آشنا بودن با این تکنولوژی ها و تازه کار بودن من در جاوا و اندروید هست.


    BroadcastReceiver همونطور که می دونید، برای آگاهی از بعضی رویدادها در سیستم هست و من از این برای اطلاع از متصل بودن به نت استفاده کردم، به محض اینکه نت (Mobile Data/WiFi) متصل باشه، کلاس زیر شروع به کار می کنه:



    public class NetworkChangeReceiver extends BroadcastReceiver {
    private Context mContext;
    private JobScheduler mJobScheduler;

    @Override public void onReceive(final Context context, final Intent intent) {
    try {

    boolean isVisible = AppController.isActivityVisible();// Check if Log.i("Activity is Visible ", "Is activity visible : " + isVisible);

    // If it is visible then trigger the task else do nothing
    ConnectivityManager connectivityManager = (ConnectivityManager) context
    .getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo networkInfo = connectivityManager
    .getActiveNetworkInfo();

    // Check internet connection and accrding to state change the // text of activity by calling method if (networkInfo != null && networkInfo.isConnected()) {
    mContext = context;
    mJobScheduler = (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SER VICE);
    JobInfo.Builder builder = new JobInfo.Builder(1,
    new ComponentName(MainActivity.PACKAGE_NAME, Job.class.getName()));

    builder.setPeriodic(3000);
    builder.build();
    if (mJobScheduler.schedule(builder.build()) == JobScheduler.RESULT_FAILURE) {
    //If something goes wrong Log.i("mJobScheduler", "If something goes wrong ");
    }
    } else {
    }
    } catch (Exception e) {
    e.printStackTrace();
    }

    }
    }



    مزیت اینه که وقت نت قطع شد، می تونم پس زمینه رو هم متوقف کنم تا مشکلی پیش نیاد. اما این کلاس JobService من هست که برای تست هست:



    public class Job extends JobService {
    private static final String TAG = "SyncService";
    @Override
    public boolean onStartJob(JobParameters params) {
    // fake work
    Log.i(TAG, "on start job: " + params.getJobId());
    return true;
    }
    @Override
    public boolean onStopJob(JobParameters params) {
    return true;
    }
    }



    من در اینجا شیئی از Job.Class ساختم و اون رو شروع هم کردم، اما این کلاس عکس العملی نداره و اجرا نمیشه (کلاس NetworkChangeReceiver به خوبی کار می کند):



    if (networkInfo != null && networkInfo.isConnected()) {
    mContext = context;
    mJobScheduler = (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SER VICE);
    JobInfo.Builder builder = new JobInfo.Builder(1,
    new ComponentName(MainActivity.PACKAGE_NAME, Job.class.getName()));

    builder.setPeriodic(3000);
    builder.build();
    if (mJobScheduler.schedule(builder.build()) == JobScheduler.RESULT_FAILURE) {
    //If something goes wrong
    Log.i("mJobScheduler", "If something goes wrong ");
    }
    } else {
    }



    حالا سوال من این هست:
    1. چطور کلاس Job رو صدا بزنم؟
    2. چطور زمانبندی ایجاد کنم؟ مثلا هر ساعت یکبار اجرا شود.

    با تشکر
    آخرین ویرایش به وسیله kolibri : شنبه 05 خرداد 1397 در 10:20 صبح

تاپیک های مشابه

  1. بررسی یک مقدار از اینترنت در پس زمینه
    نوشته شده توسط ali reza mansoori 2 در بخش Android Studio
    پاسخ: 4
    آخرین پست: یک شنبه 30 آذر 1393, 23:34 عصر
  2. پاسخ: 8
    آخرین پست: پنج شنبه 19 دی 1392, 21:43 عصر
  3. سوال: بهترين روش براي دريافت اطلاعات از ديتابيس ديگر
    نوشته شده توسط didaaa در بخش ASP.NET Web Forms
    پاسخ: 3
    آخرین پست: یک شنبه 31 مرداد 1389, 13:06 عصر
  4. سوال: گذاشتن پروگرس بار براي دريافت اطلاعات از بانك
    نوشته شده توسط javadt در بخش برنامه نویسی در 6 VB
    پاسخ: 11
    آخرین پست: دوشنبه 13 اردیبهشت 1389, 18:59 عصر
  5. سوال: درخواست کمک برای دریافت اطلاعات از کاربر
    نوشته شده توسط Marjan_Bala در بخش ASP.NET Web Forms
    پاسخ: 6
    آخرین پست: چهارشنبه 20 شهریور 1387, 09:28 صبح

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •