小さなアプリを作成しましたが、特定の時間に自動的に実行したいと思います。時間はユーザーが入力する必要があります。
例:私のアクティビティが、特定のゲームを開始するために、時間として午後5時30分を入力した場合、時間を入力した後にアプリケーションを閉じても、そのゲームは午後5時30分に自動的に実行されます。
小さなアプリを作成しましたが、特定の時間に自動的に実行したいと思います。時間はユーザーが入力する必要があります。
例:私のアクティビティが、特定のゲームを開始するために、時間として午後5時30分を入力した場合、時間を入力した後にアプリケーションを閉じても、そのゲームは午後5時30分に自動的に実行されます。
アラームとそのブロードキャスト レシーバーを作成し、そのインテントを Android マニフェストに入れます。
http://blog.mikesir87.io/2013/04/android-creating-an-alarm-with-alarmmanager/をご覧ください。
事前にアラームを 1 週間セットするだけです。
タッチについては、この置き換えを試してください:
Button stopAlarm = (Button) findViewById(R.id.stopAlarm);
stopAlarm.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View arg0, MotionEvent arg1) {
mMediaPlayer.stop();
finish();
return false;
}
});
と
Button stopAlarm = (Button) findViewById(R.id.stopAlarm);
stopAlarm.setOnClickListener(new OnTouchListener() {
@Override
public void onClick(View arg0) {
mMediaPlayer.stop();
finish();
}
});
arg0 または arg1 を使用する必要がない理由は、タッチまたはクリックがどこから来ているかを既に知っているためです。アクティビティ全体のクリック リスナーがある場合 (アクティビティが onClickListener を実装している場合)、次のようなものを使用します。
@Override
public void onClick(View arg0) {
switch(arg0){
case R.id.id1:
//Do what you want here
break;
case R.id.id2:
//Do what you want here
break;
default:
//Do default stuff
break;
}
}
しかし、私の理解では、このようなものは必要ないと思いますが、正しいですか? これらの時間にアクティビティを実行したいだけですか?
したがって、私が正しければ、これを行う必要があります。
public class AlarmReceiverActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.alarm);
//Do what you want here
//This is now your activity to play with :D
}
}