У меня есть широковещательный приемник, который запускает службу, и в этой службе я должен проверить, активно ли мое основное приложение или в фоновом режиме. Существуют ли какие-либо методы, как это сделать?Как определить, что приложение для Android в фоновом режиме?
ответ
Вы можете расширить класс приложения и сохранить текущее состояние приложения. Вам нужно будет обновить его из всех методов onPause() и onResume().
public class MyApplication extends Application {
public static boolean isAppVisible() {
return visible;
}
public static void inForeground() {
visible = true;
}
public static void inBackground() {
visible = false;
}
private static boolean visible;
}
Зарегистрируйте свой класс приложения в AndroidManifest.xml:
<application
android:name="your.app.package.MyApplication"
android:icon="@drawable/icon"
android:label="@string/app_name" >
Добавить OnPause и onResume каждой деятельности в рамках проекта (вы можете создать общий суперкласс для вашей деятельности, если вы хотите, но если ваша деятельность уже простиралась от MapActivity/ListActivity и т.д., вам все еще нужно написать следующее вручную):
@Override
protected void onResume() {
super.onResume();
MyApplication.inBackground();
}
@Override
protected void onPause() {
super.onPause();
MyApplication.inForeground();
}
Context ctx = context.getApplicationContext();
ActivityManager am = (ActivityManager) context
.getSystemService(ACTIVITY_SERVICE);
// get the info from the currently running task
List<ActivityManager.RunningTaskInfo> taskInfo = am.getRunningTasks(1);
PackageManager pm = this.getPackageManager();
boolean flag = false;
try {
/**
* take fore ground activity name
*/
ComponentName componentInfo = taskInfo.get(0).topActivity;
if (printLog) {
Log.d("Tag", "CURRENT Activity ::"
+ taskInfo.get(0).topActivity.getClassName());
Log.d("Tag", "Number Of Activities : "
+ taskInfo.get(0).numRunning);
Log.d("Tag",
"Componenet Info : " + componentInfo.getPackageName());
Log.d("Tag",
"Componenet Info : " + componentInfo.getClassName());
}
/**
* All activities name of a package to compare with fore ground
* activity. if match found, no notification displayed.
*/
PackageInfo info = pm.getPackageInfo(
"com.package_name",
PackageManager.GET_ACTIVITIES);
ActivityInfo[] list = info.activities;
for (int i = 0; i < list.length; i++) {
Log.d("Tag","Activity : "+list[i].name);
if (list[i].name.equals(componentInfo.getClassName())) {
flag = true;
}
}
if(flag)
{
//activity is running
}
} catch (NameNotFoundException e) {
e.printStackTrace();
}
И принять <uses-permission android:name="android.permission.GET_TASKS" />
разрешение в манифесте.
Принимая во внимание реализацию приложения, которое отслеживает, идет ли приложение вперед или назад, используя onPause() и onResume().
Посмотрите на это solution.
Надеюсь, это поможет.
- 1. Android приложение в фоновом режиме
- 2. Приложение для запуска Android в фоновом режиме
- 3. Храните приложение для Android в фоновом режиме
- 4. Как запустить приложение Android в фоновом режиме?
- 5. Как запустить приложение Android в фоновом режиме?
- 6. Как убить приложение Android в фоновом режиме
- 7. Приложение для Android XDK для Android, работающее в фоновом режиме?
- 8. Android запустить приложение в фоновом режиме
- 9. Сенсор Android, прослушивающий приложение в фоновом режиме
- 10. Android, устанавливающий приложение программно в фоновом режиме
- 11. Как я могу сохранить приложение для Android в фоновом режиме
- 12. Android - приложение должно работать в фоновом режиме
- 13. Android, работает приложение в фоновом режиме
- 14. Как сделать приложение для Android, которое работает в фоновом режиме?
- 15. Android-плеер для Android в фоновом режиме
- 16. Как я могу запустить приложение для Android в фоновом режиме
- 17. Как определить, когда приложение будет завершено в фоновом режиме?
- 18. Запустить приложение в фоновом режиме android
- 19. Удерживайте Android-приложение в фоновом режиме
- 20. Как определить, работает ли приложение в фоновом режиме или нет
- 21. Как сохранить приложение активным в фоновом режиме
- 22. Как определить входящий вызов в фоновом режиме
- 23. Android: Как определить, идет ли активность в фоновом режиме?
- 24. Убедитесь, что приложение андроида BLE всегда работает в фоновом режиме
- 25. Как сохранить приложение в фоновом режиме
- 26. Приложение для Android: сбой в фоновом режиме, затем снова сбой
- 27. Приложение IOS в фоновом режиме?
- 28. Поддерживать приложение в фоновом режиме?
- 29. Приложение для Android работает в фоновом режиме или нет?
- 30. Приложение, выполняющееся в фоновом режиме
Отлично! Спасибо, это действительно помогает мне! –