0

我正在尝试为活动组实现带有警报对话框的警报管理器。我可以通过在我的应用程序内部或外部暂停警报对话框来成功进入计划的活动。如果安排了活动组而不是活动,则在暂停警报对话框时无法进入活动组。(可以在应用程序中但不能在应用程序外部暂停警报对话框时进入活动组。 )

示例代码如下:

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()并且意图的标志在意图的FLAG_ACTIVITY_NEW_TASK位置setFlags。即使在上面的代码执行之后,活动组也没有出现在前台。(在调试代码时,我确定活动组没有出现在前台,但是执行了一些内部函数,例如为活动组的活动绘制表格,这些函数在 onCreate() 中调用。)

因此,我不确定上述代码是否需要任何更新才能正常运行以在暂停警报对话框时安排活动组中的活动。请帮助我解决上述问题。


我的问题不是暂停警报。我想通过警报管理器调度程序进入活动组。活动组应该在警报管理器调度到期后出现在前台,但它永远不会发生(但活动组活动的 onCreate 函数被执行)。只有当我们退出我们的应用程序时才会发生上述情况。无论应用程序内部还是外部,都会出现警报对话框。在单击警报对话框的确定​​按钮时,我们需要进入活动组的活动,但它没有发生。如何解决上述情况。

4

1 回答 1

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();





 }});



}

}
于 2012-11-27T07:08:17.197 回答