当应用程序打开时,我想发送纬度和经度,但是当应用程序打开时,需要一些时间来获取lat和long。 我正在使用处理程序在onResume方法中调用服务类,一旦我得到纬度和经度我想停止处理程序,因为我想进行API休息调用但处理程序没有停止它继续运行,即使我停止了。请释放。帮助我。
这是代码:
package com.getspot.getspot.managerpart;
import android.Manifest;
import android.app.Activity;
public class ManagerHomePage extends AppCompatActivity {
private Handler mHandler1 = new Handler();
private final int REFRESH_RATE1 = 10000;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Mapbox.getInstance(this
, getString(R.string.access_token));
setContentView(R.layout.activity_home);
ctx=this;
intent1 = new Intent(ctx,
MyLocationService1.class);
startService(intent1);
}
@Override
protected void onResume() {
super.onResume();
mHandler1.removeCallbacks(startTimer1);
mHandler1.postDelayed(startTimer1, 0);
}
private Runnable startTimer1 = new Runnable() {
public void run() {
ctx.startService(new Intent(ctx,MyLocationService1.class));
gs_sharepref_latlong = ctx.getSharedPreferences("myprefer", Context.MODE_PRIVATE);
gs_str_latitude = gs_sharepref_latlong.getString("Lat", null);
gs_str_Longitude = gs_sharepref_latlong.getString("Long", null);
// GS_UserUpdateLocation(ctx,gs_str_Latitude1,gs_str_Longitude1);
gs_str_Latlong=gs_str_latitude+","+gs_str_Longitude;
Log.i("AA","shared"+gs_sharepref_latlong.getString("Lat", null));
if(gs_sharepref_latlong.getString("Lat", null)!=null)
{
mHandler1.removeCallbacks(startTimer1);
Toast.makeText(ctx, "if--LATLONG-**-" + gs_sharepref_latlong.getString("Lat", null), Toast.LENGTH_LONG).show();
callmethod();
Log.i("AA","iff latitude"+gs_str_latitude);
}
else
{
Log.i("AA","elsee--lat"+gs_str_latitude);
Toast.makeText(ctx, "else--LATLONG--"+gs_sharepref_latlong.getString("Lat", null) , Toast.LENGTH_LONG).show();
}
mHandler1.postDelayed(this,REFRESH_RATE1);
}
};
private void callmethod() {
if(gs_str_latitude!=null && !gs_str_latitude.equalsIgnoreCase("") && !gs_str_latitude.isEmpty())
{
mHandler1.removeCallbacks(startTimer1);
// GS_User_LoggedStatus(ctx,gs_var_userid);
Log.i("AA","calmethod--lat"+gs_str_latitude);
}
}
}
注意:在if语句中我试图停止处理程序,但它没有停止,即使我正在调用一个方法,在那个方法中我也停止了处理程序,但它没有请求帮助我。