0

我正在做一个警报应用程序,我正在使用一种方法在特定时间启动一个活动,我在我的应用程序中有一个名为 enable\disable 的选项,我不希望警报打开活动(它播放当我选中禁用框时,声音并具有我选择的图像)!因此,我正在寻找一种在活动开始之前关闭活动的方法,并且不要在屏幕上显示任何内容以表明活动正在开始和关闭!我正在使用这种方法在特定时间打开特定活动

     Intent myIntent = new Intent(SharedPrefs.this,MainPhoto.class);
     pendingIntent = PendingIntent.getActivity(MainPhoto.this, 0, myIntent, 0);
     AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
     Calendar calendar = Calendar.getInstance();
     calendar.setTimeInMillis(System.currentTimeMillis()+10000);
     alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);

这有什么帮助吗?

4

3 回答 3

1

如何取消警报,或者使用将要打开的服务而不是活动来检查它是否需要打开活动?

于 2012-12-08T22:44:25.520 回答
0

我建议将复选框作为共享首选项,然后在您触发新活动的意图之前,检查它是否被禁用...如果您确实想启动新活动,请检查复选框是否检查,如果是,调用finish();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (Checkbox.checked())
        finish();
}

希望这可以帮助 :)

于 2012-12-08T22:50:08.660 回答
0

取消警报可能是这里最好的解决方案。

可能有一些罕见的情况,直到活动被调用后您才知道。在这些情况下,只需finish()在之前调用setContentView

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        if (/* Check here if valid */) {
            finish();
        } else {
            setContentView(R.layout.some_layout);
            /* Actually do your initialization. */
        }
    }
于 2012-12-08T22:53:42.603 回答