gpt4 book ai didi

java - 将单击按钮操作变为服务

转载 作者:行者123 更新时间:2023-12-01 09:47:53 25 4
gpt4 key购买 nike

我有一个按钮,单击时会显示您的位置,将其与精确的固定位置进行比较,并说明您与该位置之间的距离有多少米,我想要做的是在单击服务时执行操作,以便它在应用程序启动时运行,并保持运行直到应用程序关闭。这是我的按钮代码

                @Override
public void onClick(View arg0) {
// create class object
gps = new GPSTracker(AndroidGPSTrackingActivity.this);
TextView status = (TextView) findViewById(R.id.status);
TextView where = (TextView) findViewById(R.id.where);
TextView greet = (TextView) findViewById(R.id.greet);

// check if GPS enabled
if (gps.canGetLocation()) {
double datapostLat = -26.106589;
double datapostLong = 28.015150;
double latitude = gps.getLatitude();
double longitude = gps.getLongitude();
// \n is for new line
Toast.makeText(getApplicationContext(), "Your Location is - \nLat: " + latitude + "\nLong: " + longitude, Toast.LENGTH_LONG).show();
status.setText("YOUR LOCATION" + "\n" + "Latitude: " + latitude + "\n" + "Longitude: " + longitude);
try {
float[] results = new float[1];
Location.distanceBetween(latitude, longitude, datapostLat, datapostLong, results);
System.out.println(results[0]);
where.setText("You are: " + results[0] + " M" + " Away from Datapost");
// Toast.makeText(AndroidGPSTrackingActivity.this, ""+ results[0] +"", Toast.LENGTH_SHORT).show();
if(results[0]<50) {
greet.setText("Welcome to Datapost");
} else {
greet.setText("You are leaving Datapost");
}
} catch (Exception e) {
e.getStackTrace();
//for debugging
Toast.makeText(AndroidGPSTrackingActivity.this, "error: " + "\n" + e, Toast.LENGTH_SHORT).show();
}

} else {
// can't get location
// GPS or Network is not enabled
// Ask user to enable GPS/network in settings
gps.showSettingsAlert();
}


}

总之我需要做一个简单的服务来代替这个按钮,可能吗?

最佳答案

friend ~

您的最佳选择是IntentService,它可以帮助您将操作卸载到在后台运行的单独线程上。

您可以不断地从LocationProvider获取固定位置和最新位置之间的距离。然后,您可以通过 LocalBroadcastManager 不断将结果发送到您的 Activity,并在 Main(UI) Thread 中更新您的 UI。

引用:https://developer.android.com/training/run-background-service/index.html

关于java - 将单击按钮操作变为服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37832771/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com