京都のスマートフォン・アンドロイドアプリ開発会社のサイトです!

TIPS
当社アプリに関するお知らせや開発裏話を綴ります。

日本Androidの会 京都支部 10月 勉強会

日本Androidの会 京都支部の10月の勉強会が10月28日に開催されます。
参加希望の方は、下記の ATND からお申込ください!
現在、立ち見になりますが、数名ほど余裕があります。京都から Android アプリを発信しませんか?!

日本Androidの会 京都支部 10月 勉強会

AlarmManager と NotificationManager

目覚まし時計のように、ある時刻になったら通知をしてくれるケースについて処理について説明します。

まず、起因に下になる Activity にて、AmarmManager に Intent を追加します。下記の例では、システム時間の15秒後に AlarmBroadcastReceiver が呼ばれます。

Calendar calendar = Calendar.getInstance(); 
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.SECOND, 15); 
 
Intent intent = new Intent(this,AlarmBroadcastReceiver.class);
PendingIntent sender = PendingIntent.getBroadcast(this,0,intent,0);
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
 
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), sender);
Toast.makeText(this, "Alarm Start!", Toast.LENGTH_SHORT).show();

その AlarmBroadcastReceiver では、NotificationManager を使って、端末に通知を行います。

public class AlarmBroadcastReceiver extends BroadcastReceiver 
{
 
	/* (non-Javadoc)
	 * @see android.content.BroadcastReceiver#onReceive(android.content.Context, android.content.Intent)
	 */
	@Override
	public void onReceive(Context context, Intent intent) 
	{
		NotificationManager manager = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);
 
		Notification notification = new Notification(R.drawable.icon,context.getString(R.string.app_name),System.currentTimeMillis());
 
		Intent _intent = new Intent(context.getApplicationContext(),MainActivity.class);
		PendingIntent pending = PendingIntent.getActivity(context, 0, _intent, 0);
 
		notification.setLatestEventInfo(context.getApplicationContext(),"通知タイトル","通知説明",pending);
		manager.notify(1, notification);
		Toast.makeText(context, "Alarm Received!", Toast.LENGTH_SHORT).show(); 
	}
}

AlarmManager と NotificationManager を使う場合、AndroidManifest.xml にそれぞれを登録する必要があります。

        <receiver android:name=".AlarmBroadcastReceiver" android:process=":remote" />
        <service android:name="NotificationChangeService" />

Copyright © 2011 HuNavi. All Rights Reserved.

このページの先頭へ