【发布时间】:2012-04-30 14:36:27
【问题描述】:
我正在编写一个 Android 应用程序,它可以检索手机的当前位置并将其发送到网络服务器。 我希望能够按下开始按钮并让应用程序以预定的时间间隔(比如每 10 分钟)继续检索和发送位置,然后在按下另一个按钮时停止。
这是我的按钮的代码:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
startButton.setOnClickListener(new OnClickListener() {
@Override
//When the button is clicked
public void onClick(View v) {
finishButton.setEnabled(true);
startButton.setEnabled(false);
//Loops every 10mins
pingCurrentLocation();
}
});
finishButton.setOnClickListener(new OnClickListener() {
@Override
//When the button is clicked
public void onClick(View v) {
startButton.setEnabled(true);
finishButton.setEnabled(false);
pingCurrentLocation();
}
});
}
pingCurrentLocation 是获取位置并发送它的函数。
我知道使用 AlarmManager 可能会实现我想要的,但我无法理解其中的任何一个。是否有任何明确的步骤或模板适用于我的情况。
【问题讨论】:
-
我不明白,警报管理器是一种理想的方法......我正在使用警报管理器做同样的事情。服务会占用内存而且我不是特别喜欢线程所以我选择了AlarmManager。你想让我在这里分享我的代码吗?
-
我知道这将是理想的,只是我在实现它时遇到了很多问题。如果您不介意分享您的代码,那就太好了。
-
@X-Man - 我更新了答案,详细说明了使用 AlarmManager/BroadcaseReceiver 组合。
标签: android