Tyl*_*aff 1 android broadcastreceiver alarmmanager android-intent
我有一个闹钟应用程序.我有一个活动,用户设置闹钟的时间.这将注册我在发出警报时接收广播的广播接收器类别AlarmManager
.然后我在接收器中开始一个新的活动onReceive()
.当第二个活动开始时,播放闹钟声音onStart()
.如何判断我的活动是由接收者启动还是用户只是对应用程序进行多任务处理?当用户使闹钟静音,按下主页按钮,然后租借应用程序(同时仍然在声音播放活动中)时,我不希望我的声音播放.
只需通过您在onReceive()
方法中使用的意图发送一个额外的:
Intent intent = new Intent(this, NextActivity.class);
intent.putExtras("playSound", true);
Run Code Online (Sandbox Code Playgroud)
在你的"声音播放"活动中,你必须播放声音onCreate()
:
boolean playSound = getIntent().getBooleanExtra("playSound", false);
Run Code Online (Sandbox Code Playgroud)
如果intent-extra"playSound"不存在或设置为false,则返回false,如果设置为true,则返回true.
onCreate()
仅被调用一次(当活动开始时),而onStart()
每次用户重新进入您的活动时(即通过最近的应用程序)都会调用它.您可以在生命周期中看到这一点:
当暂停时的东西吸引了你的活动(例如,低电池对话框)被调用时,停止被称为如果"退出"您的应用程序(例如,通过家庭按钮).
归档时间: |
|
查看次数: |
1194 次 |
最近记录: |