Обнаружена такая вот фигня - есть AppWidget, который можно разместить на LockScreen устройства. С виджета можно открыть новость в приложении. Все было как обычно - кидаеться broadcast , его ловит reciever и открывает новость. Но!!! С лок скрина - этого не происходило. По наблюдениям в дебагере процесс запуска приложения просто замирал. Причем все необходимые флаги были установлены:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
Пришлось делать вот такой костыль, как описано здесь: http://stackoverflow.com/questions/16188402/how-to-start-new-activity-from-lockscreen
Вставлять в приложение ProxyActivity, цель у которого - завести основной мотор всего приложения с некоторой задержкой. Кто нибудь, объясните мне : WHY???? Что это за нах??? И нет ли какого-либо способа сделать это красиво? Просто запустить Reciever который просто запустит Activity?
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
Пришлось делать вот такой костыль, как описано здесь: http://stackoverflow.com/questions/16188402/how-to-start-new-activity-from-lockscreen
Вставлять в приложение ProxyActivity, цель у которого - завести основной мотор всего приложения с некоторой задержкой. Кто нибудь, объясните мне : WHY???? Что это за нах??? И нет ли какого-либо способа сделать это красиво? Просто запустить Reciever который просто запустит Activity?
Как ты запускаешь активить, когда сработал onReceived?
ОтветитьУдалитьif(getIntent().getAction().equals(DataFields.ACTION_RUN_ARTICLE)){
УдалитьMain.runWithArticle(context, dataObj);
}else if(getIntent().getAction().equals(DataFields.ACTION_RUN_WEATHER)){
Main.run(context,geoID,informers)
}
тут Main.run статический метод, который проеряет наличия инстанса Main и если его нет, то запускает SplashScreen который его формирует. Вот сплеш запускаеться, но активность в нем просто замирает. Остаеться только layout на экране а все асинк таски уходят в onCanceled()
асинктаски для таких случаев нельзя юзать, они зависят от жизни активити...ты вроде это прекрастно знаешь))))Я бы сделал так, создал активность как новыую таску, например как создается плеер в мобильном клиенте ВК. Но я пока не вижу полной проблемы.
УдалитьТакси юзаються в сплеше. Для взаимодействия с апи. Проблема заключается в том что на локскрине есть виджет, который показывает новости. При клика на новость в виджете должна открыться новость. Но новость не открывается. Попадаем в онкриейт, проходим пару инструкций и все. Лайоут активности на экране но сама активность больше не выполняет никаких инструкций. Это происходит только тогда, когда виджет на экране блокировки в андроиде 4.2
Удалить