在特定时间触发功能(代码)

时间:2012-05-05 07:48:01

标签: android

我创建了一个小应用程序,但我希望它在特定时间自动执行。时间必须由用户输入。

例如: 如果我的活动是,为了开始一个特定的游戏并且我在下午5:30进入该时间,它应该在下午5:30自动运行该游戏,即使我在输入时间后关闭了该应用程序。

1 个答案:

答案 0 :(得分:3)

为它创建一个警报和一个广播接收器,将其意图放在Android Manifest中

查看http://blog.mikesir87.io/2013/04/android-creating-an-alarm-with-alarmmanager/

只需将警报设置为高级的一周。


对于触摸事物,请尝试替换:

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
    }

}
相关问题