Mobile App Development. - Alarm -



Ähnliche Dokumente
Professionelle Seminare im Bereich MS-Office

TELIS FINANZ Login App

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus:

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

GeoPilot (Android) die App

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch

INSTALLATION DES V-MODELL XT UNTER WINDOWS VISTA

Beschreibung Regeln z.b. Abwesenheitsmeldung und Weiterleitung

Übung - Arbeiten mit Android

Wie Sie beliebig viele PINs, die nur aus Ziffern bestehen dürfen, mit einem beliebigen Kennwort verschlüsseln: Schritt 1

Version Deutsch In diesem HOWTO wird beschrieben wie Sie Ihr vorhandenes PMS-System mit der IAC-BOX verbinden und konfigurieren.

Vorarlberger Standardschulinstallation Anbindung von Android Mobile Devices

Über die Internetseite Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt.

Wie Sie mit Mastern arbeiten

INDEX. Öffentliche Ordner erstellen Seite 2. Offline verfügbar einrichten Seite 3. Berechtigungen setzen Seite 7. Öffentliche Ordner Offline

INHALT 1. INSTALLATION DES V-MODELL XT UNTER WINDOWS 7 2. INSTALLATION DES V-MODELL XT UNTER WINDOWS VISTA

AZK 1- Freistil. Der Dialog "Arbeitszeitkonten" Grundsätzliches zum Dialog "Arbeitszeitkonten"

Anlegen eines DLRG Accounts

4.1 Download der App über den Play Store

ARCO Software - Anleitung zur Umstellung der MWSt

Internet Explorer Version 6

Veröffentlichen von Apps, Arbeitsblättern und Storys. Qlik Sense Copyright QlikTech International AB. Alle Rechte vorbehalten.

IMAP Backup. Das Programm zum Sichern, Synchronisieren, Rücksichern und ansehen von gesicherten Mails. Hersteller: malu-soft

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

inviu routes Installation und Erstellung einer ENAiKOON id

YouTube: Video-Untertitel übersetzen

Benutzerhandbuch. Leitfaden zur Benutzung der Anwendung für sicheren Dateitransfer.

SICHERN DER FAVORITEN

Softwaretechnologie -Wintersemester 2013/ Dr. Günter Kniesel

Ihren Kundendienst effektiver machen

Mit dem Tool Stundenverwaltung von Hanno Kniebel erhalten Sie die Möglichkeit zur effizienten Verwaltung von Montagezeiten Ihrer Mitarbeiter.

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

THEMA: "SAS STORED PROCESSES - SCHNELL GEZAUBERT" HELENE SCHMITZ

7. Bewässerung: Mehrmals pro Woche

Second Steps in eport 2.0 So ordern Sie Credits und Berichte

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

macs Support Ticket System

Kostenstellen verwalten. Tipps & Tricks

Sich einen eigenen Blog anzulegen, ist gar nicht so schwer. Es gibt verschiedene Anbieter. ist einer davon.

Lehrer: Einschreibemethoden

my.ohm Content Services Autorenansicht Rechte

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

Die Invaliden-Versicherung ändert sich

ClubWebMan Veranstaltungskalender

Starten der Software unter Windows 7

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Übung: Verwendung von Java-Threads

trivum Multiroom System Konfigurations- Anleitung Erstellen eines RS232 Protokolls am Bespiel eines Marantz SR7005

Step by Step Webserver unter Windows Server von Christian Bartl

1 Was ist das Mediencenter?

Backup der Progress Datenbank

Was meinen die Leute eigentlich mit: Grexit?

DriveLock 6. DriveLock und das Windows Sicherheitsproblem mit LNK Dateien. CenterTools Software GmbH

Brainloop Dox Häufig gestellte Fragen

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

Erklärung zum Internet-Bestellschein

Technische Analyse der Zukunft

SharePoint Demonstration

Anlage eines neuen Geschäftsjahres in der Office Line

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Ebenenmasken Grundlagen

Adminer: Installationsanleitung

Der Kalender im ipad

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

How to do? Projekte - Zeiterfassung

ACDSee Pro 2. ACDSee Pro 2 Tutorials: Übertragung von Fotos (+ Datenbank) auf einen anderen Computer. Über Metadaten und die Datenbank

Aufbau des CariNet 2.0 Was ist CariNet?

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

Stellvertretenden Genehmiger verwalten. Tipps & Tricks

Visual Basic Express Debugging

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

ROFIN App Benutzerhandbuch. Version 1.0

Was ist das Budget für Arbeit?

Folgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert:

Facharbeit Informatik. Thema:

Dokumentation zum Spielserver der Software Challenge

Benutzerhandbuch MedHQ-App

Sowohl die Malstreifen als auch die Neperschen Streifen können auch in anderen Stellenwertsystemen verwendet werden.

Das Handbuch zu KNetAttach. Orville Bennett Übersetzung: Thomas Bögel

Firewalls für Lexware Info Service konfigurieren

Ihr habt Probleme auf die Closed Public Beta zuzugreifen? Dieses Dokument hilft Euch Antworten auf häufig gestellte Fragen zu erhalten.

2. Die eigenen Benutzerdaten aus orgamax müssen bekannt sein

Erstellen eines Screenshot

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lexware professional und premium setzen bis einschließlich Version 2012 den Sybase SQL-Datenbankserver

Online-Prüfungs-ABC. ABC Vertriebsberatung GmbH Bahnhofstraße Neckargemünd

Kommunikations-Parameter

2. Hintergrundverarbeitung in Android: Services und Notifications

Wie der Shop funktioniert!

Fernzugang Uniklinikum über VMware View

Internet und WWW Übungen

Dokumentenverwaltung im Internet

Kurzanleitung. Nutzung des Online Office von 1&1. Zusammengestellt:

Java: Vererbung. Teil 3: super()

Smartphone E4004 & X5001

Transkript:

Mobile App Development - Alarm -

Inhalt Alarme AlarmManger Wake locks 2

Alarm

Alarm Oft ist es notwendig eine App zu starten, auch wenn der Benutzer nicht mit ihr interagiert Starten von Activities zu bestimmten Zeitpunkten zyklisches Starten von Services Realisierung über Alarme 4

Alarm Beim Erstellen eines Alarms muss man sich verschiedene Fragen stellen Erwachen Soll das Gerät erwachen, um den Alarm auszuführen? Wiederholung Soll der Alarm nur einmal ausgeführt oder wiederholt werden? 5

Alarm Beim Erstellen eines Alarms muss man sich verschiedene Fragen stellen Genauigkeit Ist es notwendig, dass der Alarm zum exakten Zeitpunkt ausgeführt wird oder kann er etwas verschoben werden? Muss der Alarm zur Realzeit ausgeführt werden oder reicht eine relative Zeit? 6

Alarm Beim Erstellen eines Alarms muss man sich verschiedene Fragen stellen Ereignis Was soll passieren, wenn der Alarm ausgelöst wird. Soll eine Activity, ein Service oder ein BroadcastReveiver gestartet werden? 7

Alarm In Android kann zwischen verschiedenen Systemzeiten unterscheiden werden real time elapsedtime uptime 8

Alarm real Time Realzeit, ist die vergangene Zeit seit dem 01.01.1970 analog zu Standard Java Achtung: Kann vom Benutzer verändert werden und sollte daher mit Vorsicht verwendet werden 9

Alarm up time gibt die Zeit seit dem letzten System Boot an enthält nicht die Zeit, die das System im Schlafmodus verbracht hat unabhängig von Benutzereinstellungen 10

Alarm elapsed time gibt die Zeit an, die seit dem letzten System Boot vergangen ist enthält auch die Zeit, die im Schlafmodus verbracht wurde unabhängig von Benutzereinstellungen 11

AlarmManager

AlarmManager Durch den AlarmManager erhält man Zugriff auf den Android AlarmService Er ermöglicht die zeitgesteuerte Ausführung von Programm Code 13

AlarmManager Alarm erstellen public void createalarm(view view) {!! // AlarmManager vom System abrufen */! AlarmManager mng = (AlarmManager)!!!!! getsystemservice(context.alarm_service);!! /* Hier wird die Komponente eingetragen, die als Action! ausgeführt werden soll */! Intent intent = new Intent(this, TestActivity.class);! /* Erstellen eines PendingIntents für eine Activity */! PendingIntent pi = PendingIntent.getActivity(this, 0, intent,!!! PendingIntent.FLAG_UPDATE_CURRENT);!! /* Alarm setzen */! mng.set(alarmmanager.elapsed_realtime,!!!! SystemClock.elapsedRealtime() + PERIOD, pi);!! } 14

AlarmManager AlarmManager.set() Parameter Alarm Typ Ausführungszeit Aktion 15

AlarmManager Alarm Typ ELAPSED_REALTIME Basis ist die elapsed time, Gerät wird nicht aus deep sleep aufgeweckt ELAPSED_REALTIME_WAKEUP wie oben, nur dass das Geräte aus dem deep sleep aufgeweckt wird, wenn der Alarm ausgelöst wird 16

AlarmManager Alarm Typ RTC Basis ist die Realzeit, Gerät wird nicht aus deep sleep aufgeweckt RTC_WAKEUP wie oben, nur dass das Geräte aus dem deep sleep aufgeweckt wird, wenn der Alarm ausgelöst wird 17

AlarmManager Ausführungszeit Zeitpunkt, an dem der Alarm ausgeführt werden soll abhängig vom Alarm Typ: elapsed oder real time in Millisekunden 18

AlarmManager PendingIntent die eigentliche Aktion, die bei Einsetzen des Alarm ausgeführt werden soll Starten einer Activity, eines Services oder eines BroadcastReceivers als Aktion 19

AlarmManager Wiederholenden Alarm erstellen public void createalarm(view view) {!! // AlarmManager vom System abrufen */! AlarmManager mng = (AlarmManager)!!!!! getsystemservice(context.alarm_service);!! // PendingIntent als auszuführende Aktion erstellen! PendingIntent pi = creatependingintent();!! /* Alarm setzen, der periodisch wiederholt wird */! mng.setrepeating(alarmmanager.elapsed_realtime,!!!! SystemClock.elapsedRealtime() + PERIOD, PERIOD, pi);! } 20

AlarmManager Ungenaue Alarme Bei einem ungenauen Alarm versucht Android das WakeUp mit anderen Alarmen aus Energiespargründen zusammen zu legen D. h. der Alarm wird u. U. nicht genau zu angegebenen Zeitpunkt ausgeführt 21

AlarmManager Ungenauen Alarm erstellen public void createinexactalarm(view view) {!! // AlarmManager vom System abrufen */! AlarmManager mng = (AlarmManager)!!!!! getsystemservice(context.alarm_service);!! // PendingIntent als auszuführende Aktion erstellen! PendingIntent pi = creatependingintent();!! /* Alarm setzen, der periodisch wiederholt wird */! mng.setinexactrepeating(alarmmanager.elapsed_realtime,!!!! SystemClock.elapsedRealtime() + PERIOD,!!!! AlarmManager.INTERVAL_HOUR, pi);! } 22

AlarmManager Ungenauen Alarm erstellen setinexactrepeating() erhält die gleichen Parameter, wie die Methode setrepeating() nur die Periode wird in Form von AlarmManager.INTERVAL_XXX Kostanten angegeben 23

AlarmManager Alarm abbrechen public void cancelalarm(view view) {!!! /* Referenz auf den AlarmManger abrufen */!! AlarmManager mng = (AlarmManager) getsystemservice(alarm_service);!!! /* Alarme werden abgebrochen, indem man den PendingIntent,!! mit dem sie erstellt wurden, angibt */!! mng.cancel(creatependingintent());!! } 24

Wake locks

Wake locks Problemstellung Wenn ein Gerät in den Schalfmodus (deep sleep) geht, werden ausführende Prozesse angehalten Wie kann also verhindert werden, dass Hintergrundprozesse angehalten werden bzw. das Gerät in den Schlafmodus geht? 26

Wake locks Wake locks... werden verwendet, um das System daran zu hindern, in den Schlafmodus zu gehen 27

Wake locks Arten von Wake locks (API 7) CPU Screen Keyboard PARTIAL On On Off SCREEN_DIM On Dim Off SCREEN_BRIGHT On Bright Off FULL On Bright Bright Quelle: http://developer.android.com/reference/android/os/powermanager.html#full_wake_lock 28

Wake locks Wake locks verwenden Um Wack locks setzen zu können, wird die Berechtigung WAKE_LOCK benötigt <?xml version="1.0" encoding="utf-8"?>! <manifest xmlns:android="..."! package="de.htwds.emrolab.mada.alarm"! android:versioncode="1"! android:versionname="1.0" >!! <uses-permission android:name="android.permission.wake_lock"/>!! <application>... </application>!! </manifest> 29

Wake locks Wake locks verwenden! private void createwakelock(context context) {!!! /* Referenz auf den PowerManager abrufen */!!! PowerManager pm = (PowerManager)!!!!! context.getsystemservice(context.power_service);!!! /* Erzeugen eines partial wake locks */!!! WakeLock lock = pm.newwakelock(!!!!! PowerManager.PARTIAL_WAKE_LOCK, "my.debug.tag");!!! /* Setzen des Wake locks */!!! lock.acquire();!!!!!! /* auszuführender Code */!!!!!! /* Freigabe des Wake locks*/!!! lock.release();!! } 30

Wake locks Wake locks belasten die Gerätebatterie zusätzlich Sie sollten nur dann verwendet werden, wenn sie unbedingt gebraucht werden Ein Wake-Lock sollte so schnell wie möglich wieder freigegeben werden 31

Literatur I. Sven Haiges: Android Schnelleinstieg entwickler.press, 2011 II. Mark L. Murphy: The Busy Coder s Guide To Android Development, Version 4.3, 2012