アラーム マネージャーとブロードキャスト レシーバーを使用してアプリケーションを作成し、メイン アクティビティからパブリック クラス MyScheduleReceiver に文字列を渡したい (アラーム マネージャーが内部にある) 後、パブリック クラス MyStartServiceReceiver に BroadcastReceiver を拡張してデータを静的関数に渡す....In主なアクティビティは、編集ボックスからこの変数を共有設定で保存します。しかし、受信機内で共有設定を使用することはできません。
public class MyScheduleReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
int theHour = intent.getIntExtra("AlarmHour", 0);
int theMinute= intent.getIntExtra("AlarmMin", 0);
AlarmManager service = (AlarmManager) context
.getSystemService(Context.ALARM_SERVICE);
Intent i = new Intent(context, MyStartServiceReceiver.class);
PendingIntent pending = PendingIntent.getBroadcast(context, 0, i,
PendingIntent.FLAG_CANCEL_CURRENT);
i.putExtra("data","1");
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(System.currentTimeMillis());
cal.set(Calendar.HOUR_OF_DAY, theHour); // set user selection
cal.set(Calendar.MINUTE, theMinute);
cal.set(Calendar.SECOND, 0);
service.set(AlarmManager.RTC_WAKEUP,
cal.getTimeInMillis(), pending);
}
public class MyStartServiceReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
Intent service = new Intent(context, AlarmService.class);
context.startService(service);
String result = intent.getStringExtra("data");
String msg=result;
try {
ArduBtTimer.sendData(msg);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}