Tuesday, April 22, 2014

Android code: Периодическое выполнение задач

Решил я сделать очередные говно классные часы под Android. Их все делают - это как визитка для старта по типу "Hello World!".

Но мы не ищем легких путей и не будем использовать стандартные виджеты типа:
AnalogClock analogClock = (AnalogClock) findViewById(R.id.analogClock);
DigitalClock digitalClock = (DigitalClock) findViewById(R.id.digitalClock);

Чтобы усложнить задачу придумал:
- часы должны быть виджетом;
- они должны отображать не рисунок, а текст времени;
- изменение цвета, прозрачности;
- изменение языка в зависимости от места положения на карте;

Все бы хорошо, но при старте виджет показывает текущее время и стоит, дальше дело не пошло. Обновления текущего времени нет. Включить это все в Thread и +Handler? И я так понимаю, что батарея и ресурсы будут работать на этот виджет. Возник вопрос о периодичном выяснении текущего времени и обновлении виджета. По-началу использовал ScheduledExecutorService - таже фигня, после первого же прерывания процесса. Ошибся...

Несколько ссылок на StackOverflow и вуаля, нашел такую фишку как AlarmManager.

Создал вот такой метод onUpdate:

Пока не добавил в Blogger возможность делать вставки с source code, оставляю картинкой.
И да, не забываем потом за собой убирать. Нужно создать некий метод onDelete() и вставить туда как пример:
 alarmManager.cancel(pendingIntent);
 pendingIntent.cancel();

Еще ньюанс:
- если Вы хотите запускать код в милисекундном диапазоне, то нужно использовать BrodcastReceiver:

public class Notifier extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
    // ...
    }
}

- если в поминутном, то IntentService Вам в руки

Вобщем, продолжаю изучать...

Thursday, March 6, 2014

AndroidStudio вечерний досуг с ребенком :)

Вчера ребенок под AndroidStudio сделал очередной LayOut  и это уже 6й по счету. Вот я подумал, что они стандартно похожи между собой, и нужно с помощью XML научить его разнообразить|раскрасить все это дело.
Просто рекомендую использовать ваши темы в AndroidManifest.xml:








<application android:icon="@drawable/icon"android:theme="@style/Theme.YourAp" android:name="com.demo.App">
//------------------------ res/values/styles.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
        <style name="Theme" parent="android:Theme" />
<style name="Theme.YourApp" parent="android:style/Theme.Light">
<!-- customisable theme items-->
        </style>
</resources>

Ну и уже исопльзование самого стиля:
<item name="android:buttonStyle">@style/Widget.Button</item>

Wednesday, January 22, 2014

Недавние события и пару размышлений на тему, постараюсь не политическую...

Захожу на dou.ua и ОМГ. Домен типа отдали, NS были направлены на douua.org и вот такое сообщение от Макса: 
Конечно это не защищает от контента и высказываний на сайте, но по крайней мере ход действий понятен и логичен - перевести бизнес за пределы страны.
На этом все о политике :) 

Мое видение, если бы у меня был контентный бизнес без оффлайн. Расшифрую: бизнес который работает только на просторах интернет и принимает онлайн платежи, например: заказы на рекламу, возможно еще онлайн сервис, консультационные онлайн услуги, юридические онлайн услуги и т.п. , придумать сервисов можно много конечно.
Что можно сделать, чтобы хоть както обезопасить, то что Ваше:
- компания для принятия платежей на территории Austria, Ireland, USA, Germany, etc. Нужно подумать что Вам удобнее, ну и где бизнесу комфортней - на эту тему много статей и анализа по налогам и по среде обитания;
- перевести домен к регистратору, например: http://www.networksolutions.com/ (или купить новый) 
- хостинг сайта как пример: aws.amazon.com, cloud.google.com 
- офис GoogleApps (почта, документы, совместная работа) 
- если нужна CRM, ERP: SalesForce, NetSuite и тп opensource типа SugarCRM;
Да, оплата будет только онлайн (кредитная карточка, PayPal сервис и тп), для некоторых клиентов - это не приемлемо, но по-крайней мере "удобно" для бизнеса.
Нужно постоянно думать о диверсификации.