【问题标题】:what is the best way to launch an activity that will be closed after X seconds from a broadcast receiver从广播接收器启动将在 X 秒后关闭的活动的最佳方法是什么
【发布时间】:2013-09-09 04:32:27
【问题描述】:

我正在从广播接收器的 onReceive 函数启动一个活动。活动从 10 倒计时到 0,如果用户点击它或计时器 (CoundDownTimer) 到期,我将调用 finish() 并关闭我的活动。

  1. 有没有更好的方法来完成我想要的?
  2. 如果有人从任务管理器启动我的活动,它会再次启动并再次开始从 10 倒计时到 0(我不想要)。无论如何要避免这种情况?

提前致谢

【问题讨论】:

  • 你的意思是当活动从 brodcasreceive 开始时你想应用倒数计时器而不是正常开始的时候?
  • 如果从打开的应用程序列表中启动它,你的意思是通常那么是的。这是一个糟糕的设计吗?

标签: android android-activity broadcastreceiver android-lifecycle countdowntimer


【解决方案1】:

你可以做一件事

当您从广播接收器(如

Intent i = new Intent();

i.putExtra("SETTIMER",true);

在开始计时器之前的活动内部写一个类似的条件

if(getIntent.getBooleanExtra("SETTIMER",false)){

     //start timer
}else{

    //dont start timer
}

【讨论】:

  • 如果我想保存剩下的秒数,只需将其保存在 onPause 方法上?
  • 你正好在 onPause()
  • 我认为它可以工作,但事实并非如此。无论活动是从广播接收器还是从任务管理器启动,我在 if 条件下都是正确的。
猜你喜欢
  • 2018-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多