我有一个需要启动和停止活动的应用程序。
到目前为止,我们可以启动活动。
当我尝试停止活动时出现问题。
这是播放关闭活动意图的AlarmManager:
Intent ftue = new Intent(ctxt, VideoActivty.class);
ftue.putExtra("finish", true);
PendingIntent pftue = PendingIntent.getBroadcast(ctxt, 0, ftue, 0);
Calendar calSet4 = Calendar.getInstance();
calSet4.set(Calendar.MONTH, c.get(Calendar.MONTH));
calSet4.set(Calendar.YEAR, c.get(Calendar.YEAR));
calSet4.set(Calendar.DAY_OF_WEEK, 3);
calSet4.set(Calendar.HOUR_OF_DAY, hftue);
calSet4.set(Calendar.MINUTE, mftue);
calSet4.set(Calendar.SECOND, 0);
calSet4.set(Calendar.MILLISECOND, 0);
//calSet.setTimeZone(TimeZone.getTimeZone("UTC"));
mgr.setRepeating(AlarmManager.RTC_WAKEUP, calSet4.getTimeInMillis(),
7 * 24 * 60 * 60 * 1000, pftue);
在我的Activty中我实现了一个应该关闭Activty的BroadcastReceiver。
但没有成功......
@Override
public void onResume() {
super.onResume();
IntentFilter f=new IntentFilter();
registerReceiver(receiver, f);
}
@Override
public void onPause() {
unregisterReceiver(receiver);
super.onPause();
}
BroadcastReceiver receiver=new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
Log.e("","intento ricevuto");
if(intent.getBooleanExtra("finish",false))finish();
}
};
答案 0 :(得分:1)
让我对我的评论作出回答并阐述它。
如果您使用空IntentFilter
,您的活动将不会收到任何广播的Intents。但是,如果您的广播意图特别引用了一种类型的BroadcastReceiver,那将是有效的。
因此,如果您在MyReceiver extends BroadcastReceiver
中定义了一个类VideoActivity
,然后将广播意图形成为new Intent(context, VideoActivity.MyReceiver.class)
将被传递。
希望这是有道理的。