次のように、最初のアクティビティSimpleServiceController.javaがあります。
public class SimpleServiceController extends Activity {
BroadcastReceiver br;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button start = (Button) findViewById(R.id.serviceButton);
Button stop = (Button) findViewById(R.id.cancelButton);
start.setOnClickListener(startListener);
stop.setOnClickListener(stopListener);
Log.v("Steps", "1");
br = new BroadcastReceiver() {
@Override
public void onReceive(Context c, Intent i) {
Log.v("Steps", "2");
Toast.makeText(c, "Baboii!", Toast.LENGTH_LONG).show();
}
};
Log.v("Steps", "3");
registerReceiver(br, new IntentFilter("boom") );
Log.v("Steps", "4");
}
private OnClickListener startListener = new OnClickListener() {
public void onClick(View v) {
startService(new Intent(SimpleServiceController.this,
SimpleUpdateService.class));
startActivity(new Intent (SimpleServiceController.this, AlarmManagerListening.class));
}
};
次のような別のアクティビティAlarmManagerListening.javaがあります。
public class AlarmManagerListening extends Activity{
final static private long ONE_SECOND = 1000;
final static private long TEN_SECONDS = ONE_SECOND * 10;
PendingIntent pi;
BroadcastReceiver br;
AlarmManager am;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
pi = PendingIntent.getBroadcast( this, 0, new Intent("boom"), 0 );
Log.v("Steps","5");
am = (AlarmManager)(this.getSystemService( Context.ALARM_SERVICE ));
Log.v("Steps","6");
am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime()+ONE_SECOND, TEN_SECONDS, pi);
Log.v("Steps","7");
}
論理的には、AlarmManagerListening
ボタンがクリックされたときにのみアクティビティを開始する必要があります。
ただし、それは単独で開始されています。誰でも私にコードを説明してもらえますか?
どうもありがとう!