当我设定时间时,如何使用广播接收器在该特定时间开始活动或执行某些操作,例如按钮点击操作(不是吐司)?
答案 0 :(得分:0)
您可能需要处理程序;
Intent intent;
Handler handler;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
intent = new Intent(this, ChildActivity.class);
handler = new Handler();
setContentView(R.layout.activity_streaming_client_example);
}
并使其在特定时间运行使用handler.postAtTime
handler.postAtTime(new Runnable() {
@Override
public void run() {
MotherActivity.this.startActivityForResult(intent, 0);
}
}, millisecond_toStartfromUpTime);
如果您想在几秒钟后发布,请使用handler.postDelayed
handler.postDelayed(new Runnable() {
@Override
public void run() {
MotherActivity.this.startActivityForResult(intent, 0);
}
}, millisecond_delayhere);
答案 1 :(得分:0)
您可能需要使用AlarmManager + Service来执行此操作。 你可以在这里看看
http://android-er.blogspot.com/2010/10/simple-example-of-alarm-service-using.html
和显示Toast的Service类(在链接中), 只需在那里制作一些新意图和startActivity(intent) PS。在开始之前。您必须添加此行
非常重要youintent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
像这样
public class AlarmService extends Service {
private Intent alarmIntent;
@Override
public void onCreate() {
alarmIntent = new Intent(this, AlarmActivity.class);
alarmIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
}
@Override
public void onStart(Intent intent, int startId) {
super.onStart(intent, startId);
//Toast.makeText(this, "MyAlarmService.onStart()", Toast.LENGTH_LONG)
// .show();
startActivity(alarmIntent);
}
// another implement method......
}