Я хочу иметь одно приложение, которое работает в фоновом режиме, который знает, когда любое из встроенных приложений (обмен сообщениями, контакты, и т.д.) работает.
Таким образом, мои вопросы:
Как я должен запустить свое приложение в фоновом режиме.
Как мое фоновое приложение может знать, каково приложение, в настоящее время работающее на переднем плане.
Ответы от людей с опытом значительно ценились бы.
Класс ActivityManager класс является соответствующим инструментом, который можно увидеть, какие процессы работают.
Чтобы запустить на заднем плане, вы обычно хотите использовать службу .
Сделайте что-нибудь вроде этого:
int showLimit = 20;
/* Get all Tasks available (with limit set). */
ActivityManager mgr = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> allTasks = mgr.getRunningTasks(showLimit);
/* Loop through all tasks returned. */
for (ActivityManager.RunningTaskInfo aTask : allTasks)
{
Log.i("MyApp", "Task: " + aTask.baseActivity.getClassName());
if (aTask.baseActivity.getClassName().equals("com.android.email.activity.MessageList"))
running=true;
}