/ / Как да стартирате автоматично различно инсталирано приложение за Android, когато спре да работи? - java, android

Как автоматично да стартирате отново инсталирано различно инсталирано приложение за Android, когато то спре да работи? - java, android

Бих искал да направя много основно приложение, което докатотой се изпълнява, той ще открие при всяка актуализация на кадъра, дали друго приложение работи във фонов режим (приложение, което не се вижда в основната област на екрана, просто икона в горната част от противоположната страна на battery/wifi/simcard иконите са, когато не са на цял екран. Надявам се, че има смисъл, не знам как се нарича тази лента отгоре.)

Имам отметка, когато е отметнато в моите приложенияоформление, той непрекъснато ще стартира отново приложението, когато се затваря автоматично. Ако не бъде отметнато, това ще позволи на приложението да се затвори и да остане затворено, както обикновено. Всичко това предполага, че приложението на трета страна, което искам да проверя и стартирам, вече е инсталирано ръчно.

той може да работи във фонов режим дори и да прави своето, дори когато телефонът е заключен или в режим на заспиване, което мога да кодирам сам, убеден съм.

И така, ето сделката, имам нужда от двефункции / методи / каквото и да е. Този, който проверява състоянието на това дали съществуващото инсталирано приложение се изпълнява (предполагам, като използва идентификатора на приложението или нещо подобно като param), дори ако е на този фон, както споменах, не е необходимо да проверява фокуса на прозореца, само дали е налице съществуващ процес.

Другата функция, от която се нуждая, за да стартирам приложение въз основа на неговия идентификатор, като това, което казах за проверка на състоянието му.

Тук е макет за запълване на кухите места, акоОбяснявам това ужасно, имайте предвид, че съм нов в андроид Java програмирането, но мисля, че се уча малко бързо, тъй като вече имам опит със c ++, така че включва по-малко учене, отколкото новост в програмирането.

Кодът:

//check fires every step/update
If (CheckIfAppIsRunning("com.compamy.company") == False) { // or 0, whatever java does idont have my pc or eclipse in front of me right now
RunApp("com.company.example");
}

Не съм правил това от известно време, но съм убеден, че това би трябвало да е болест. Просто a CheckIfAppIsRunning() и a RunApp() функция.

Благодаря!! :Д

Отговори:

0 за отговор № 1

За съжаление концепцията за тичане и не тичане не е толкова проста в android.

На първо място, Android обикновено поддържа процеси на приложенията възможно най-дълго, така че дори (спрени) приложения могат да се изпълняват като лек процес, в случай че потребителят иска да рестартира приложението.

Което прави невъзможно да се установи какъв точно процес се изпълнява и какво не е.

но добрата новина е, че Android работи в фонов режим в Обслужване обект, който може да бъде стартиран отново от други компоненти.

Така че, ако бях на ваше място, щях да опитам и да използвам Мениджър на дейности и да получите списък на работещите услуги. и ги сравнете със списъка с инсталирани приложения, изтеглени от Пакет мениджър за да идентифицира какво работи и какво не.

Сега ако приемем, че искате да рестартирате конкретнауслуга, не всички услуги имат публични интерфейси, за да ги стартират (публично намерение, което е дефинирано в manifest.xml на приложението), така че може да се наложи да стартирате цялото приложение, което означава две неща:

  • тя ще бъде изведена отпред и каквото и да е правил потребителят, ще бъде прекъснато.
  • ако устройството е в режим на празен ход, нищо няма да се случи.