Android开发-在Service中使用单个后台计时器加上操作之后 A: Android开发-在Service中使用单个后台计时器加上操作之后

7 浏览
0 Comments

Android开发-在Service中使用单个后台计时器加上操作之后 A: Android开发-在Service中使用单个后台计时器加上操作之后

你好,\n我已经做了一些研究,但没有任何效果。此外,我的上一个问题没有按计划工作。\n所以这是我想要做的事情:\n1.) 在我的MainActivity上,用户在EditText中输入一个数值。\n2.) 当他们按下“确定”按钮时,它会启动一个服务来运行他们输入的时间长度的计时器。\n3.) 当计时器时间到达时,服务会执行一些附加操作。\n问题:\n1.) 我可以简单地使用按钮通过意图来启动服务,然后在服务中放置代码吗?\n1b.) 无法确切地弄清楚如何从服务中获取用户输入的EditText。\n2.) 当计时器时间到达时,我可以在服务内部运行“附加操作”吗?\n2b.) 或者,当计时器时间到达时,我需要触发BroadcastReceiver来完成操作吗?\n3.) 我需要在清单文件中添加任何特殊的Intent-Filters吗?\n基本上,我在弄清楚哪些代码应该放在哪里方面遇到了麻烦。\n目前我正在使用Alarm Manager,PendingIntent和Intent的组合。\n任何帮助将不胜感激,因为我已经尝试了近一个月来正确完成这个任务。\n我可能对Android编程有点新,但我渴望学习,所以提前感谢你!

0
0 Comments

问题的出现原因:用户想要在Android应用中创建一个后台计时器服务,并在计时结束后执行某个操作。

解决方法:

1. 可以在服务中创建一个计时器,并在计时结束后执行操作。

2. 可以在服务中创建一个计时器,并通过意图将数据传递给服务。

3. 可以在服务中使用计时器逻辑来执行其他操作,不需要UI交互。

4. 可以根据计时器逻辑的不同,决定是否需要声明意图过滤器。

5. 需要在AndroidManifest.xml中声明服务。

6. 可以使用CountDownTimer类来实现倒计时。

7. 可以使用intent.putExtra("key","value")将用户输入的数据放入意图中。

8. 在服务中使用intent.getExtras().getString("key")来检索数据。

9. 不需要使用PendingIntent。

代码示例:

// 在MainActivity中将用户输入的数据放入意图中
Intent serviceIntent = new Intent(this, MyBackgroundService.class);   
String time = editText.getText().toString();
serviceIntent.putExtra("TIME_INTERVAL", time);
startService(serviceIntent);
// 在服务中检索数据
Bundle extras = intent.getExtras();
if (extras != null) {
    String time = extras.getString("TIME_INTERVAL");
    // 执行操作
}

请注意,服务类的实现与活动类有所不同。如果最小时间差是以分钟为单位,可以使用上面的链接中的action tick逻辑来实现每分钟运行一次逻辑代码的服务。在你的情况下,逻辑已经在上面的链接中给出(时间差)。此外,我还提供了如何从意图中检索数据的示例。如果遇到问题,请尝试查阅一些代码,如果仍然卡住,我(以及Stack Overflow社区)一定会帮助你的,如果你仍然卡住,我只能在周末编写完整的代码,所以你必须自己尝试,直到那时为止。

如果解决了你的问题,请将其接受为答案,如果还有其他令人困惑的地方,请继续提问。

0