2012-05-05 9 views
2

小さなアプリを作成しましたが、特定の時間に自動的に実行します。時刻はユーザーが入力する必要があります。特定の時間に関数(コード)をトリガーする

たとえば: 私の活動が特定のゲームを開始するには、時間として午後5時30分を入力すると、時間を入力してもアプリケーションを終了しても自動的に午後5時30分にゲームが実行されます。

答えて

3

それのためのアラームおよびブロードキャストレシーバを作成し、ちょうど高度に一週間のアラームを設定しhttp://blog.mikesir87.io/2013/04/android-creating-an-alarm-with-alarmmanager/

を見てみましょうAndroidのマニフェスト

で、このために意図を置きます。


タッチ事は、これは置き換えてみてくださいについて:

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 
    } 

} 
+0

私が動作するように、少なくとも方向性を持っていると思います。私が成功したときに私はあなたに知らせるでしょう。ありがとう。 –

+0

問題はありません、申し訳ありませんが、私は過去にこれを行っていますが、プロジェクトファイルがどこにあるのかわかりません – FabianCook

+0

あなたが与えたリンクから目覚まし時計を実装しています... alarmclockActivityの14行目。それは、onTouchListnerは型に解決できないと言っています。 も私はなぜ引数はARG0とarg1にそのまま残されている。.. –

関連する問題