Member 13229306 Ответов: 1

Редактирование скрипта Android-Сервис задать вопрос


На этот вопрос, возможно, уже есть ответ здесь:
ActivityManager.getRunningTasks устарел андроид 3 ответы
Это решило мою проблему! Нет, мой вопрос стоит по-другому. Я отредактирую, чтобы объяснить, как это сделать.
у меня есть этот сервис, который запускает поиск другого приложения для android, и если оно не запущено, то оно будет запущено . но у меня есть проблема :

что эта часть
ActivityManager.RunningTaskInfo foregroundTaskInfo = activityManager.getRunningTasks(1).get(0);



getRunningTasks(1). устарел
package com.blaa.bla.blaaa;
import android.app.ActivityManager;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.os.IBinder;
import android.os.PowerManager;


import android.support.annotation.Nullable;

import java.util.Timer;
import java.util.TimerTask;



public class servicename extends Service {

private static final int INTERVAL = 3000; // poll every 3 secs
private static final String YOUR_APP_PACKAGE_NAME = "my_package_name";

private static boolean stopTask;
private PowerManager.WakeLock mWakeLock;

@Nullable
@Override
public IBinder onBind(Intent intent) {
    return null;
}

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

    stopTask = false;


 final   ActivityManager activityManager = (ActivityManager) 
 getSystemService(Context.ACTIVITY_SERVICE);

    // Start your (polling) task
    TimerTask task = new TimerTask() {
        @Override
        public void run() {

            // If you wish to stop the task/polling
            if (stopTask){
                this.cancel();
            }


            // The first in the list of RunningTasks is always the 
    foreground task.
            ActivityManager.RunningTaskInfo foregroundTaskInfo = activityManager.getRunningTasks(1).get(0);
            String foregroundTaskPackageName = foregroundTaskInfo .topActivity.getPackageName();

            // Check foreground app: If it is not in the foreground... bring it!
            if (!foregroundTaskPackageName.equals(YOUR_APP_PACKAGE_NAME)){
                Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage(YOUR_APP_PACKAGE_NAME);
                startActivity(LaunchIntent);
            }
        }
    };
    Timer timer = new Timer();
    timer.scheduleAtFixedRate(task, 0, INTERVAL);
}

@Override
public void onDestroy(){
    stopTask = true;
    if (mWakeLock != null)
        mWakeLock.release();
    super.onDestroy();
}
}


Что я уже пробовал:

ничего особенного просто какой то поиск в гугле

1 Ответов

Рейтинг:
2

Richard MacCutchan

Видеть ActivityManager.getRunningTasks(инт)[^].