Alarm via boardcast Penerima Android
HiGuys..!
Tutorial ini mungkin bisa membantu untuk bersandar tentang Alarm dengan Broadcast Receiver di android. Sebuah Broadcast Receiver merupakan komponen Android yang memungkinkan Anda untuk mendaftar untuk sistem atau aplikasi peristiwa . Semua penerima terdaftar untuk sebuah event akan diberitahu oleh Android run-time setelah acara ini terjadi .
Tutorial ini mungkin bisa membantu untuk bersandar tentang Alarm dengan Broadcast Receiver di android. Sebuah Broadcast Receiver merupakan komponen Android yang memungkinkan Anda untuk mendaftar untuk sistem atau aplikasi peristiwa . Semua penerima terdaftar untuk sebuah event akan diberitahu oleh Android run-time setelah acara ini terjadi .
Sebuah benda BroadcastReceiver
hanya berlaku untuk durasi panggilan untuk OnReceive (Context, Intent). Setelah
kode Anda kembali dari fungsi ini, sistem menganggap objek yang akan selesai
dan tidak lagi aktif .
Jika mendaftarkan penerima di Activity.onResume Anda ( ) pelaksanaan,
Anda harus membatalkan registrasi di Activity.onPause
( ) . ( Anda tidak akan menerima maksud ketika berhenti , dan ini akan
mengurangi overhead sistem yang tidak perlu ) .
Jangan registrasinya di Activity.onSaveInstanceState ( ) , karena hal ini tidak akan dipanggil jika pengguna bergerak kembali dalam tumpukan sejarah . Lebih detail tentang siaran receiever sini .
Jangan registrasinya di Activity.onSaveInstanceState ( ) , karena hal ini tidak akan dipanggil jika pengguna bergerak kembali dalam tumpukan sejarah . Lebih detail tentang siaran receiever sini .
Kelas Alarm Manager menyediakan
akses ke layanan sistem alarm . Ini memungkinkan Anda untuk menjadwalkan
aplikasi Anda dijalankan di beberapa titik di masa depan. Ketika alarm berbunyi,
Intent yang telah terdaftar untuk itu disiarkan oleh sistem, secara otomatis
memulai aplikasi target jika tidak sudah berjalan . Alarm Terdaftar
dipertahankan saat perangkat sedang tidur ( dan opsional dapat membangunkan
perangkat jika mereka pergi selama waktu itu ) , tapi akan dihapus jika
dimatikan dan reboot .
The Alarm Manajer memegang kunci
bangun CPU asalkan metode alarm penerima OnReceive ( ) mengeksekusi . Hal ini
menjamin bahwa ponsel tidak akan tidur sampai Anda selesai menangani siaran .
Setelah OnReceive ( ) kembali , rilis Alarm Manajer kunci bangun ini . Ini
berarti bahwa ponsel akan dalam beberapa kasus tidur secepat OnReceive ( )
metode Anda selesai . Ada dua cara kita dapat terdaftar dan membatalkan
registrasi siaran menerima .
1.
Cara Dinamis
2.
Static
Cara yang dinamis : Anda dapat
mendaftarkan penerima dinamis melalui metode Context.registerReceiver ( ) .
Anda juga dapat secara dinamis membatalkan registrasi receiver dengan
menggunakan metode Context.unregisterReceiver ( ) .
For Register
ComponentName receiver = new ComponentName(this, AlarmManagerBR.class);
PackageManager pm =
this.getPackageManager();
pm.setComponentEnabledSetting(receiver,
PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
PackageManager.DONT_KILL_APP);
|
For UnRegister
ComponentName receiver = new ComponentName(this, AlarmManagerBR.class);
|
PackageManager pm =
this.getPackageManager();
pm.setComponentEnabledSetting(receiver,
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);
main_activity.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center|top"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity"
>
<Button
android:id="@+id/button_startalarm"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Start Reapeat
Alarm" />
<Button
android:id="@+id/button_cancelalarm"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Cancel
Alarm" />
<Button
android:id="@+id/button_enablebr"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Enable
BR" />
<Button
android:id="@+id/button_disablebr"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Disable
BR" />
</LinearLayout>
MainActivity.java
package com.olbersl.br;
import com.olbers.br.R;
import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity implements OnClickListener{
private Button btnstartalarm=null;
private Button btncancelalarm=null;
private Button btnenablebr=null;
private Button btndiablebr=null;
AlarmManager amanager=null;
PendingIntent pi=null;
@Override
protected void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnstartalarm =
(Button)findViewById(R.id.button_startalarm);
btncancelalarm =
(Button)findViewById(R.id.button_cancelalarm);
btnenablebr =
(Button)findViewById(R.id.button_enablebr);
btndiablebr =
(Button)findViewById(R.id.button_disablebr);
btnstartalarm.setOnClickListener(this);
btndiablebr.setOnClickListener(this);
btncancelalarm.setOnClickListener(this);
btnenablebr.setOnClickListener(this);
}
@Override
public void onClick(View arg0) {
if(arg0==btnstartalarm)
{
amanager=(AlarmManager)this.getSystemService(Context.ALARM_SERVICE);
Intent
intent= new Intent(this, AlarmManagerBR.class);
pi=PendingIntent.getBroadcast(this, 0, intent, 0);
//After after 2 seconds
amanager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(),
1000*4, pi);
Toast.makeText(this, "Start
Repating Alarm", Toast.LENGTH_SHORT).show();
}
else if (arg0==btncancelalarm) {
amanager.cancel(pi);
Toast.makeText(this, "Canceled
Alarm", Toast.LENGTH_SHORT).show();
}
else if(arg0==btnenablebr){
ComponentName receiver = new ComponentName(this, AlarmManagerBR.class);
PackageManager pm = this.getPackageManager();
pm.setComponentEnabledSetting(receiver, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);
Toast.makeText(this, "Enable
Boradcast Reciever", Toast.LENGTH_SHORT).show();
}
else if (arg0==btndiablebr) {
ComponentName receiver = new ComponentName(this, AlarmManagerBR.class);
PackageManager pm = this.getPackageManager();
pm.setComponentEnabledSetting(receiver, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
Toast.makeText(this, "Diable
Boradcast Reciever", Toast.LENGTH_SHORT).show();
}
}
}
AlarmManagerBR.java
package com.olbersl.br;
import java.text.SimpleDateFormat;
import java.util.Date;
import android.annotation.SuppressLint;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;
public class AlarmManagerBR extends BroadcastReceiver{
@SuppressLint("SimpleDateFormat")
@Override
public void onReceive(Context
arg0, Intent arg1) {
StringBuilder
sb=new StringBuilder();
SimpleDateFormat
format=new SimpleDateFormat("hh:mm:ss
a");
sb.append(format.format(new Date()));
Toast.makeText(arg0,
sb, Toast.LENGTH_SHORT).show();
}
}
Manifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.sunil.br"
android:versionCode="1"
android:versionName="1.0"
>
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17"
/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
>
<activity
android:name="com.olbersl.br.MainActivity"
android:label="@string/app_name"
>
<intent-filter>
<action android:name="android.intent.action.MAIN"
/>
<category android:name="android.intent.category.LAUNCHER"
/>
</intent-filter>
</activity>
<receiver android:name="com.olbersl.br.AlarmManagerBR"></receiver>
</application>
</manifest>
Aplikasi
Setelah diRun
Download Source Code lengkap disini |
Posting Komentar
Tinggalkan komentar anda untuk setiap post yang mungkin bagi anda sangat bermanfaat.