假设我有两个闹钟,一个闹钟响了以后,设置第二个闹钟,而闹钟实现是用通知的形式,所以我想从第一个闹钟的通知里调用设置第二个闹钟的方法。如果我这个想法不可以,还有什么办法嘛
不知道你这个问题是否已经解决, 如果还没有解决的话:从Android4.4开始,才可以实现状态栏着色,并且从5.0开始系统更加完善了这一功能,可直接在主题中设置
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
或者
getWindow().setStatusBarColor(color)
来实现,但毕竟4.4+的机器还有很大的占比,所以就有必要寻求其它的解决方案。
对于这个问题,可以采用以下解决方案:
Intent intent = new Intent(context, SecondAlarm.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
NotificationCompat.Builder builder = new NotificationCompat.Builder(context)
.setContentTitle("First alarm")
.setContentText("Click to set second alarm")
.setSmallIcon(R.drawable.ic_alarm)
.setContentIntent(pendingIntent)
.setAutoCancel(true);
NotificationManager manager = (NotificationManager) context.getSystemService(NOTIFICATION_SERVICE);
manager.notify(0, builder.build());
public class SecondAlarm extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second_alarm);
// 设置第二个闹钟
setSecondAlarm();
// 关闭当前Activity
finish();
}
private void setSecondAlarm() {
// 设置第二个闹钟的代码
}
}
这样,当用户点击通知时,会启动SecondAlarm Activity,并在该Activity中设置第二个闹钟。同时,为了关闭SecondAlarm Activity并返回到桌面,我们在代码中调用了finish()方法。
需要注意的是,在设置第二个闹钟的代码中,我们需要根据当前时间来计算第二个闹钟的启动时间。这个可以使用Calendar类来实现。
可以让闹钟触发广播,在广播接收里设置通知和第二个闹钟。