У меня есть эта тема:
public void run() {
try {
while(isThereActivityRunning()) {
results = sendGetMessage();
b.putString("results", results);
receiver.send(2, b);
ConnectionThread.sleep(timeInterval);
}
} catch (InterruptedException e) {
results = e.toString();
}
Log.d("Service", "Serivce Stoped");
}
и функция, которая проверяет, выполняется ли у меня какое-либо действие:
private boolean isThereActivityRunning()
{
String activity;
ActivityManager activityManager = (ActivityManager)context.getSystemService (Context.ACTIVITY_SERVICE);
List<RunningTaskInfo> services = activityManager.getRunningTasks(Integer.MAX_VALUE);
for (int i1 = 0; i1 < services.size(); i1++) {
activity = services.get(i1).topActivity.toString();
Log.d("Activity", activity);
if (activity.contains(context.getString(R.string.app_name))
return true;
}
return false;
}
Я хочу, чтобы мой поток останавливался, когда не выполнялось никаких действий (для меня это означает, что приложение закрыто), и по какой-то причине я всегда получаю "true" из функции, даже когда моя активность не отображается .. что не так