Фоновая служба не работает - Android - PullRequest
0 голосов
/ 28 августа 2018

Я пытаюсь запускать метод в своем сервисе каждые две секунды, но когда я запускаю сервисы, просто запускаю один раз Это соответствующий код:

служба запуска:

 mViewHolder.mLinearLayoutContainer.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            Intent launchIntent = view.getContext().getPackageManager().getLaunchIntentForPackage(mListStorage.get(position).getAdrress());

            mApkPackage = mListStorage.get(position).getAdrress();
            Intent intent = new Intent(view.getContext(), KillerService.class);
            if(mApkPackage != null){
                intent.putExtra("NAMEAPK", mApkPackage);
                view.getContext().startService(new Intent(view.getContext().getApplicationContext(), KillerService.class));
                view.getContext().bindService(intent,mServiceConnection, Context.BIND_AUTO_CREATE);
            }


            if (launchIntent != null) {
                view.getContext().startActivity(launchIntent);//null pointer check in case package name was not found
            }
        }
    });

А это из моего класса обслуживания:

@Override
protected void onHandleIntent(@Nullable Intent intent) {
    final Handler handler = new Handler();
    handler.postDelayed(new Runnable() {
        @Override
        public void run() {
            //mAppsNames();
            Log.d("SYSTEMRUNNIGKILLI", "matandoapps");

        }
    }, 2000);
}


@Nullable
@Override
public IBinder onBind(Intent intent) {

    mApkName = intent.getStringExtra("NAMEAPK");
    Log.d("HOLAXD", mApkName);

    return null;
}




@Override
public void onCreate() {
    super.onCreate();
}

Часть Log.d("SYSTEMRUNNIGKILLI", "matandoapps"); просто запускается один раз, а не каждые 2 секунды.

Ответы [ 2 ]

0 голосов
/ 28 августа 2018

Другой способ просто добавить handler.postDelayed(this,2000);

 final Handler handler = new Handler();
    handler.postDelayed(new Runnable() {
        @Override
        public void run() {
            //mAppsNames();
            Log.d("SYSTEMRUNNIGKILLI", "matandoapps");

            handler.postDelayed(this,2000);
        }
    }, 2000);
0 голосов
/ 28 августа 2018

Вы используете неправильный метод для вызова кода через каждые 2 секунды. Попробуйте использовать этот метод

      new Timer().scheduleAtFixedRate(new TimerTask() {
            @Override
            public void run() {}
        }, 0, 1000); //1000 miliseconds equal to 1 second
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...