Name                  : SAFIRA AINI

Student ID       : 1202154315

Class                   : SI-39-03

Lesson 8: Triggering, Scheduling, and Optimizing Background Tasks
8.1: Notifikasi

Tugas 1: Membuat notifikasi dasar

1.1 Membuat Proyek

 

1.2 Membuat notifikasi pertama

 

1.3 Menambahkan intent konten

1.4 Tambahkan prioritas dan default ke notifikasi Anda

 

Tugas 2. Memperbarui dan membatalkan notifikasi

2.1 Menambahkan tombol update dan cancel

 

2.2 Mengimplementasikan metode notifikasi pembatalan dan pembaruan

 

2.3 Mengalihkan keadaan tombol

 

Tugas 3. Menambahkan tindakan notifikasi

3.1 Mengimplementasikan tindakan “Learn More”

 

3.2 Mengimplementasikan tindakan “Update”

 

Hasil :

 

8.2: Alarm Manager

Tugas 1. Menyiapkan Stand Up! Proyek dan Tampilan

1.1 Membuat Stand Up! Layout proyek

 

 


Tugas 2. Menyiapkan Notifikasi

2.1 Membuat notifikasi

 

Tugas 3. Membuat Alarm Berulang

3.1 Menyiapkan intent tertunda siaran

 

3.2 Menyetel alarm berulang

 

3.3 Membuat Penerima Siaran

3.4 Memeriksa Status Alarm

 

Hasil :

 

8.3: Job Scheduler

Tugas 1. Mengimplementasikan JobService

1.1 Membuat Proyek dan NotificationJobService

1.2Mengimplementasikan onStartJob()

Tugas 2. Mengimplementasikan kondisi kerja

2.1 Mengimplementasikan batasan jaringan

Code :

<?xml version=”1.0″ encoding=”utf-8″?>
<LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android”
xmlns:tools=”http://schemas.android.com/tools”
android:layout_width=”match_parent”
android:layout_height=”match_parent”
android:paddingBottom=”@dimen/activity_vertical_margin”
android:paddingLeft=”@dimen/activity_horizontal_margin”
android:paddingRight=”@dimen/activity_horizontal_margin”
android:paddingTop=”@dimen/activity_vertical_margin”
android:orientation=”vertical”
tools:context=”com.example.android.notificationscheduler.MainActivity”>

<TextView
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”@string/required_network_type”
android:textAppearance=”@style/TextAppearance.AppCompat.Subhead”
android:layout_margin=”4dp”/>

<RadioGroup
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:orientation=”horizontal”
android:id=”@+id/networkOptions”
android:layout_margin=”4dp”>
<RadioButton
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”@string/no_network”
android:checked=”true”
android:id=”@+id/noNetwork”/>
<RadioButton
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”@string/any_network”
android:id=”@+id/anyNetwork”/>
<RadioButton
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”@string/wifi_network”
android:id=”@+id/wifiNetwork”/>
</RadioGroup>

<TextView
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”@string/requires”
android:textAppearance=”@style/TextAppearance.AppCompat.Subhead”
android:layout_margin=”4dp”/>

<LinearLayout
android:layout_width=”match_parent”
android:layout_height=”wrap_content”
android:orientation=”horizontal”
android:layout_margin=”4dp”>
<Switch
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”@string/device_idle”
android:id=”@+id/idleSwitch”/>
<Switch
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”@string/device_charging”
android:id=”@+id/chargingSwitch”/>
</LinearLayout>

<Switch
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”@string/periodic”
android:id=”@+id/periodicSwitch”
android:layout_margin=”4dp”/>

<LinearLayout
android:layout_width=”match_parent”
android:layout_height=”wrap_content”
android:orientation=”horizontal”
android:layout_margin=”4dp”>
<TextView
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”@string/override_deadline”
android:id=”@+id/seekBarLabel”
android:textAppearance=”@style/TextAppearance.AppCompat.Subhead”/>
<TextView
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”@string/not_set”
android:id=”@+id/seekBarProgress”
android:textAppearance=”@style/TextAppearance.AppCompat.Subhead”/>

</LinearLayout>

<SeekBar
android:layout_width=”match_parent”
android:layout_height=”wrap_content”
android:id=”@+id/seekBar”
android:layout_margin=”4dp”/>

<Button
android:id=”@+id/scheduleJobButton”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:layout_margin=”4dp”
android:text=”@string/schedule_job”
android:layout_gravity=”center_horizontal”/>

<Button
android:id=”@+id/cancelJobsButton”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:layout_margin=”4dp”
android:text=”@string/cancel_jobs”
android:layout_gravity=”center_horizontal”/>
</LinearLayout>



 

2.2 Memeriksa batasan

 

2.3 Mengimplementasikan batasan Device Idle dan Device Charging

 

2.4 Mengimplementasikan batasan Batas Waktu Pengganti

 

2.5 Mengimplementasikan batasan Periodik

 

Hasil :