我正在尝试使用警报对话框为活动组实施警报管理器。 我可以通过从我的应用程序内部或外部暂停警报对话框来成功进入计划的活动。 如果计划活动组而不是活动,则暂停警报对话框无法进入活动组。(能够在应用程序中但不在应用程序外部的情况下进入活动组暂停警报对话框。 )
示例代码如下:
public static ActivityGroup group;
public static void switchPendingActivity(Class<?> destClass)
{
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setClass(group, destClass);
View view = group.getLocalActivityManager().startActivity(destClass.getSimpleName(),intent).getDecorView();
group.setContentView(view);
}
我已经通过getLocalActivityManager().startActivity()
启动了活动组,其中intent的标志是FLAG_ACTIVITY_NEW_TASK
的{{1}}意图。
即使在上面的代码执行之后,活动组也没有出现。
(在调试代码时,我确定活动组没有出现在前台,但是执行了一些内部函数,比如为活动组的活动绘制表格,在onCreate()中调用。)
因此,我不确定上述代码是否需要更新才能正常运行,以便在暂停警报对话框时安排活动组中的活动。 请帮我解决上述问题。
我的问题不是暂停闹钟。我想通过报警管理器调度程序进入活动组。警报管理器调度到期后活动组应该到达前台,但它永远不会发生(但执行活动组活动的onCreate中的函数)。只有当我们的应用程序退出时,才会出现上述情况。无论app内部还是外部,都会出现警报对话框。点击警报对话框的OK按钮,我们需要进入活动组的活动,但不会发生。如何解决上述情况。
答案 0 :(得分:0)
public class AndroidAlarmService extends Activity {
private PendingIntent pendingIntent;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button buttonStart = (Button)findViewById(R.id.startalarm);
Button buttonCancel = (Button)findViewById(R.id.cancelalarm);
buttonStart.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent myIntent = new Intent(AndroidAlarmService.this, MyAlarmService.class);
pendingIntent = PendingIntent.getService(AndroidAlarmService.this, 0, myIntent, 0);
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.SECOND, 10);
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
Toast.makeText(AndroidAlarmService.this, "Start Alarm", Toast.LENGTH_LONG).show();
}});
buttonCancel.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
alarmManager.cancel(pendingIntent);
// Tell the user about what we did.
Toast.makeText(AndroidAlarmService.this, "Cancel!", Toast.LENGTH_LONG).show();
}});
}
}