今日はAlarmManagerの実装実験。LogCatにはStarting activityと表示されて、設定した時間にActivityが開始されてるようなんだが、なぜか画面に出てこない。
-AlarmManagerTest.java-
package com.nifty.rsp38218;

import java.util.Calendar;

import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class AlarmManagerTest extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

Button b = (Button)findViewById(R.id.button1);
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v){
finish();
}
});

Calendar now = Calendar.getInstance();
String strNow = "Now: " + Integer.toString(now.get(Calendar.YEAR));
strNow += "/" + Integer.toString(now.get(Calendar.MONTH)+1);
strNow += "/" + Integer.toString(now.get(Calendar.DAY_OF_MONTH));
strNow += " " + Integer.toString(now.get(Calendar.HOUR));
strNow += " " + Integer.toString(now.get(Calendar.MINUTE)) + "\n";

now.add(Calendar.SECOND,30);

strNow += "Alarm set: " + Integer.toString(now.get(Calendar.YEAR));
strNow += "/" + Integer.toString(now.get(Calendar.MONTH)+1);
strNow += "/" + Integer.toString(now.get(Calendar.DAY_OF_MONTH));
strNow += " " + Integer.toString(now.get(Calendar.HOUR));
strNow += ":" + Integer.toString(now.get(Calendar.MINUTE));

TextView tv = (TextView)findViewById(R.id.textView1);
tv.setText(strNow);

// Intent i = new Intent(getApplicationContext(),AlarmDisplay.class);
Intent i = new Intent();
i.setClassName("com.nifty.rsp38218", "com.nifty.rsp38218.AlarmDispaly");
i.fillIn(i,Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent pi = PendingIntent.getActivity(this, 0, i, PendingIntent.FLAG_ONE_SHOT);

AlarmManager mng = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
mng.set(AlarmManager.RTC_WAKEUP, now.getTimeInMillis(), pi);

}
}
-AlarmManagerTest.java-
-AlarmDisplay.java-
package com.nifty.rsp38218;

import java.io.IOException;

public class AlarmDisplay extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.alarmdisplay);

// Intent i = new Intent();
//i.fillIn(i, Intent.FLAG_ACTIVITY_NEW_TASK);
// TODO 自動生成されたコンストラクター・スタブ
Calendar now = Calendar.getInstance();
String strNow = "Now: " + Integer.toString(now.get(Calendar.YEAR));
strNow += "/" + Integer.toString(now.get(Calendar.MONTH)+1);
strNow += "/" + Integer.toString(now.get(Calendar.DAY_OF_MONTH));
strNow += " " + Integer.toString(now.get(Calendar.HOUR));
strNow += ":" + Integer.toString(now.get(Calendar.MINUTE)) + "\n";
System.out.println("Alarm receive:" + strNow);
TextView tv = (TextView)findViewById(R.id.textView101);
tv.setText(strNow);
this.setVisible(true);
}
}
-AlarmDisplay.java-