Я хотел бы создать фоновое приложение, которое будет слушать, какие приложения запущены и что перемещено в передний план.
Ответьте, Не ли вопрос ясен, объяснит снова.
Спасибо
Это то, что вы можете сделать:
сделайте это в TimerTask с заданным периодом
public class AppListenerApp расширяет Application {
int mForegroundProcessId = -1;
public AppListenerApp() {
Таймер = новый таймер();
timer.schedule(mCheckForeground, 2000, 2000);
}
public static void main(String[] args) {
AppListenerApp app = новое AppListenerApp();
app.enterEventDispatcher();
}
TimerTask mCheckForeground = new TimerTask() {
public void run() {
int id = getForegroungProcessID();
if(id != mForegroundProcessId)
{
mForegroundProcessId = id;
Имя строки =
getAppNameByProcessId(mForegroundProcessId);
showMessage(name);
}
};
};
private int getForegroungProcessID() {
вернуть ApplicationManager.getApplicationManager()
.getForegroundProcessId();
}
приватная строка getAppNameByProcessId(int id) {
Результат строки = ноль;
ApplicationManager appMan =
ApplicationManager.getApplicationManager();
ApplicationDescriptor appDes[] =
appMan.getVisibleApplications();
for (int i = 0; i < appDes.length; i++) {
если (appMan.getProcessId(appDes[i]) == id) {
result = appDes[i].getName();
перерыв;
}
}
Результат возврата;
}
private void showMessage(Строковое сообщение) {
синхронизированный (Application.getEventLock()) {
Dialog dlg = новый Dialog(Dialog.D_OK, сообщение,
Dialog.OK, null, Manager.FIELD_HCENTER);
Ui.getUiEngine()
.pushGlobalScreen(dlg, 1, UiEngine.GLOBAL_QUEUE);
}
}
}