【发布时间】:2014-05-10 07:51:42
【问题描述】:
当我在它自己的文件中包含下面的 AlarmReceiver 类时,会记录日志语句并调用 onReceive 方法。我需要让我的 BroadcastReceiver 成为一个内部类,这样我就可以从我的 Activity 中调用 getFragmentManager()。但是,当我将其作为主 Activity 类的内部类时,它不会被调用。这是为什么呢?
public class MainActivity extends Activity {
public class AlarmReceiver extends BroadcastReceiver { //this needs to be an inner class to access the activity
@Override
public void onReceive(Context arg0, Intent arg1) {
Log.d("BROADCAST","RECEIVED");
//start a new activity, an alarm has gone off
AlarmFragment alarmFragment=new AlarmFragment();
// getFragmentManager().beginTransaction().replace(R.id.container, alarmFragment).commit();
}
}
public void setAlarm(){
Intent intentAlarm = new Intent(this, AlarmReceiver.class);
//Get the Alarm Service
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Long currentTime = new GregorianCalendar().getTimeInMillis();
//DEBUG TIME
alarmManager.set(AlarmManager.RTC_WAKEUP,currentTime+7500,PendingIntent.getBroadcast(this,1, intentAlarm, PendingIntent.FLAG_UPDATE_CURRENT));
}
}
【问题讨论】:
标签: android broadcastreceiver inner-classes