- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试制作一个应用程序,允许用户使用两个 TimePickers 输入两次,并且手机将在这些时间之间设置为静音。我正在使用 PendingIntent 和 AlarmManager 在用户选择的时间触发 BroadcastReceiver。目前,当用户单击保存按钮时,它会立即将手机设置为静音。然后出现我的“已安排警报” toast ,我的“已接收广播”出现两次,但此后它什么也没做。
这是我的主要 Activity 代码:
public class MainActivity extends AppCompatActivity {
AlarmManager alarm;
TimePicker timePickerStart;
TimePicker timePickerEnd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
timePickerStart = (TimePicker)findViewById(R.id.timePickerStart);
timePickerStart.setIs24HourView(true);
timePickerEnd = (TimePicker)findViewById(R.id.timePickerEnd);
timePickerEnd.setIs24HourView(true);
}
//method is called when save button is clicked
public void setAlarm(View view) {
Calendar calendarStart;
Calendar calendarEnd;
calendarStart = Calendar.getInstance();
calendarEnd = Calendar.getInstance();
//Set calendars to the times in both TimePickers
calendarStart.set(Calendar.YEAR, Calendar.MONTH, Calendar.DAY_OF_MONTH, timePickerStart.getCurrentHour(), timePickerStart.getCurrentMinute());
long startTimeMillis = calendarStart.getTimeInMillis();
calendarEnd.set(Calendar.YEAR, Calendar.MONTH, Calendar.DAY_OF_MONTH, timePickerEnd.getCurrentHour(), timePickerEnd.getCurrentMinute());
long endTimeMillis = calendarEnd.getTimeInMillis();
//create an intent and set the class that will be triggered by the intent
Intent intent = new Intent(MainActivity.this, Receiver.class);
PendingIntent pIntent = null;
pIntent = PendingIntent.getBroadcast(this, 123, intent, PendingIntent.FLAG_UPDATE_CURRENT);
//create alarm manager
alarm = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
//set alarms to go off at the time specified by the timePickers
alarm.set(AlarmManager.RTC_WAKEUP, calendarStart.getTimeInMillis(), pIntent);
alarm.set(AlarmManager.RTC_WAKEUP, calendarEnd.getTimeInMillis(), pIntent);
//Toast for feedback
Toast.makeText(this, "Alarm Scheduled", Toast.LENGTH_SHORT).show();
}
这是我的广播接收器:
public class Receiver extends BroadcastReceiver {
AudioManager audioManager;
int modeNum;
@Override
public void onReceive(Context context, Intent intent) {
//toast for feedback
Toast.makeText(context, "Broadcast Received", Toast.LENGTH_SHORT).show();
audioManager = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
modeNum = audioManager.getRingerMode();
if (modeNum == 0) {
audioManager.setRingerMode(2);
} else {
audioManager.setRingerMode(0);
}
}
这是我的 list :
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name=".Receiver"></receiver>
</application>
最佳答案
你有多个问题。
首先,您尝试创建两个具有相同 PendingIntent
的警报。这是行不通的。您的第二个报警请求将取消第一个。您需要 distinct PendingIntent
对象,这意味着由 PendingIntent
对象包裹的完全不同的 Intent
对象,或者使用两个123
的不同值。
其次,您对Calendar
的set()
调用不正确。例如,在这两个地方,您的第一个参数都应该是年份。您传递的是 Calendar.YEAR
,即 1
,而不是 2015
。
关于android - 待定 Intent 立即触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31232022/
我正在使用 PayPal 的快速结账为我们的客户付款。要确认/完成付款,请调用“DoExpressCheckoutPayment”。 PayPal 响应中的 PAYMENTINFO_0_PAYMENT
我遇到了这个问题: 找到列表中满足给定条件的第一个元素。 不幸的是,列表很长(100.000 个元素),使用一个线程评估每个元素的条件总共需要大约 30 秒。 有没有办法完全并行化这个问题?我查看了所
我正在使用 Sequilizer 并陷入困境,因为该方法永远处于挂起状态。 以下是我正在尝试做的事情的简化版本。基本上,API 通过调用 BatchProcessor 使用以下方法,该方法应该处理提供
我如何才能运行一段代码,比如说每 1 秒运行一次? 这是我的代码 fragment : 主要 Activity : private Context ctx; @Override
这段代码返回一个未决的 promise 我想将从 insta 函数返回的数据存储到数据数组中。 cs2.js:- async function insta(mode, coin) {
我对并行循环中的局部值和更新全局变量有疑问。 例如,在伪代码中:我在一个很长的 vector 中搜索最大值。我可以像这样循环执行: int max; for(i ...) { if (max
我正在尝试制作一个应用程序,允许用户使用两个 TimePickers 输入两次,并且手机将在这些时间之间设置为静音。我正在使用 PendingIntent 和 AlarmManager 在用户选择的时
我想设置一个只触发一次的闹钟。 有一个名为 OneShot 的 pendingintent 标志。看起来这将是正确的标志。 但是我需要使用那个标志吗?如果我使用 AlarmManager.SetTim
我在处理 Notification 和 pending Intent 时遇到了很大的麻烦。我正在尝试使用发送消息的适当 user_details 打开聊天 Activity 。这就是为什么在 Fire
当我广播待定 Intent 并通过 putExtra() 提供我的数据时,我在接收器中获得了具有相同数据的这些 Intent ,这等于第一个创建的待定 Intent .代码: for (int i =
我使用的 Intent 在用户点击推送通知时启动。我在通过未决 Intent 传递额外内容时遇到了一些问题。当我这样做时: Intent i = new Intent(this, DashboardA
作为 Python C API 的学习过程,我试图在传递给 tbb parallel_for 的仿函数中调用 Python 函数。调用函数的操作导致 Python 进程实例崩溃。我没有做任何线程不安全
我在启动 pendingIntent 时遇到问题。我已经使用 logcat 等进行了一些故障排除,最后我几乎肯定我的问题实际上是在我的 pendingIntent 方法中。我设置的时间是正确的,正在调
我的 nodejs 应用程序中有一个类,代码如下: var mongoose = require('mongoose'); var Roles = mongoose.model('r
我有一个创建通知的 Activity 。当我使用 AVD 模拟器(针对 Android 2.1 update 1)时,通知将启动 PendingIntent 就好了,但在实际设备(运行 Android
我在 Activity 中使用待处理的 Intent 。 Intent intent = new Intent(this, MyActivity.class); PendingIntent p
我在 Kubernetes 中创建 RabbitMQ 集群。我正在尝试添加负载均衡器。但我无法获取负载均衡器外部 IP,它仍在等待中。 apiVersion: v1 kind: Service met
为什么服务外部IP地址处于pending状态? 我应该为我的 kubernetes master 启用任何负载均衡器吗? 我在 digital ocean 云上使用 kubernetes。 最佳答案
我是 Android 开发新手。我可以看到股票消息“您到达办公室了吗”,但是当我单击它时,它并没有打开我的主要 Activity 。 下面是我的代码: private class ViewUpdate
我的目标是让 nginx 为我的静态文件提供服务,让 nodejs 为我的动态页面提供服务。它现在工作得很好。但我目前正在使用 websocket 添加功能,nginx 目前不支持 websocket
我是一名优秀的程序员,十分优秀!