实际的警报应用程序如何工作?

时间:2012-07-09 14:27:47

标签: android android-intent alarmmanager android-alarms

我想知道实际的警报应用程序如何在确切的时间弹出对话框而没有任何活动背景。如果可以,请查看我的this帖子,了解我正在寻找的确切解决方案,但非常感谢您回答这个问题。

弹出式代码

public void onCreate(Bundle savedinstance)
{
    super.onCreate(savedinstance); 
    //alarmsound = MediaPlayer.create(this, R.raw.wewillrock);
    alarmsound = new MediaPlayer();

        try {
            if(db.getAlarmCount()!=0)
            {
                Cursor alarmcursor = db.getAlarmdetails(this);
                if(alarmcursor!=null)
                {
                    alarmcursor.moveToFirst();
                    String alarmTonepath = alarmcursor.getString(alarmcursor.getColumnIndex(GinoClockDatabase.AL_RINGTONEPATH)); 
                    alarmsound.setDataSource(alarmTonepath);    
                    alarmsound.prepare();
                }
                db.close(); 
            }
            db.close();
        } catch (IllegalArgumentException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IllegalStateException e) {
            // TODO Auto-generated catch block0
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        alarmsound.start();

    ((Activity)Global.context).finish();
    setContentView(R.layout.reminderpopupmessage);  
    settingViews(); 
}
private void settingViews() {
    yes = (Button) findViewById(R.id.btnReminderyes);
    no = (Button) findViewById(R.id.btnReminderno); 
}
@Override
public void onClick(View v) {

    switch(v.getId())
    {
    case R.id.btnReminderyes:
        alarmsound.stop();
        Intent splashscreen = new Intent(ReminderPopupMessage.this,SplashScreen.class);
        startActivity(splashscreen);
        ReminderPopupMessage.this.finish();
        break;
    case R.id.btnReminderno:
        alarmsound.stop();
        ReminderPopupMessage.this.finish();
        break;
    } 
}

我期待这个解决方案超过一个月,但无法找到解决方案。我想我已经询问了超过5个关于此警报功能的问题。 我希望我现在能得到答案。

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

此处是Android闹钟应用git_alarm_app

的链接

答案 1 :(得分:1)

好吧,我看到了你的问题。为了在显示弹出窗口时摆脱后台活动,请在AndroidManifest.xml中使用此活动弹出警报:

<activity android:name=".AlarmPopup" android:theme="@android:style/Theme.Dialog"
              android:clearTaskOnLaunch="true" android:launchMode="singleInstance" 
              android:finishOnTaskLaunch="true" excludeFromRecents="true"/>