gpt4 book ai didi

java - 使用 GPS 位置

转载 作者:太空宇宙 更新时间:2023-11-03 13:22:15 24 4
gpt4 key购买 nike

Activity 启动后,GPS 将启用并获取用户的纬度、经度并将其报告为解析为地理点。问题是 GPS 在后台持续运行并不断向 Parse 位置报告。我只希望 GPS 获取位置信息一次,然后立即停止,因为我自己注意到我每天使用 Parse 达到了大约 20k 的请求,我认为这是因为它在后台连续运行。

下面是 Activity 代码:

public class MoodActivity extends Activity {

private FeedbackDialog feedBack;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mood);
feedBack = new FeedbackDialog(this, "");
LocationManager mlocManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
LocationListener mlocListener = new MyLocationListener();

mlocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, mlocListener);







final TextView teating = (TextView) this.findViewById(R.id.tdinning);
teating.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
MoodActivity.this.startActivity(new Intent(MoodActivity.this, CasualEventsActivity.class));
}
});

final ImageView ieating = (ImageView) this.findViewById(R.id.idinning);
ieating.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
MoodActivity.this.startActivity(new Intent(MoodActivity.this, CasualEventsActivity.class));
}
});

final TextView tdrinks = (TextView) this.findViewById(R.id.tcasual);
tdrinks.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
MoodActivity.this.startActivity(new Intent(MoodActivity.this, CasualEventsActivity.class));
}
});

final ImageView idrinks = (ImageView) this.findViewById(R.id.icasual);
idrinks.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
MoodActivity.this.startActivity(new Intent(MoodActivity.this, CasualEventsActivity.class));
}
});

final TextView tshows = (TextView) this.findViewById(R.id.tshows);
tshows.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
MoodActivity.this.startActivity(new Intent(MoodActivity.this, EntertainmentEventsActivity.class));
}
});

final ImageView ishows = (ImageView) this.findViewById(R.id.ishows);
ishows.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
MoodActivity.this.startActivity(new Intent(MoodActivity.this, EntertainmentEventsActivity.class));
}
});

final TextView tarts = (TextView) this.findViewById(R.id.tculture);
tarts.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
MoodActivity.this.startActivity(new Intent(MoodActivity.this, CultureEventsActivity.class));
}
});

final ImageView iarts = (ImageView) this.findViewById(R.id.iculture);
iarts.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
MoodActivity.this.startActivity(new Intent(MoodActivity.this, CultureEventsActivity.class));
}
});

final Button viewall = (Button) this.findViewById(R.id.brandom);
viewall.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
MoodActivity.this.startActivity(new Intent(MoodActivity.this, CasualEventsActivity.class));
}
});
}



@Override
public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main_activity_actions, menu);
getActionBar().setDisplayShowTitleEnabled(false);



return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle presses on the action bar items
switch (item.getItemId()) {
case R.id.pageExperience:
openPageExperience();
return true;
case R.id.pageMessaging:
openPageMessage();
return true;

case R.id.pageEventsBooking:
openPageBook();
return true;

case R.id.pageProfile:
openPageProfile();
return true;

case R.id.pageReport:
openPageReport();
return true;

case R.id.pageAbout:
openPageAbout();
return true;

case R.id.pageLogout:
openPageLogout();
return true;

default:
return super.onOptionsItemSelected(item);
}
}

private void openPageLogout() {
// TODO Auto-generated method stub
//Now call logout
ParseUser.logOut();
Intent intent = new Intent(getApplicationContext(), LoginActivity.class);
startActivity(intent);
}



private void openPageAbout() {
// TODO Auto-generated method stub

}

private void openPageReport() {
// TODO Auto-generated method stub
FeedbackSettings feedbackSettings = new FeedbackSettings();

//SUBMIT-CANCEL BUTTONS
feedbackSettings.setCancelButtonText("No");
feedbackSettings.setSendButtonText("Send");

//DIALOG TEXT
feedbackSettings.setText("Hey, would you like to give us some feedback so that we can improve your experience?");
feedbackSettings.setYourComments("Type your question here...");
feedbackSettings.setTitle("Feedback Dialog Title");

//TOAST MESSAGE
feedbackSettings.setToast("Thank you so much!");
feedbackSettings.setToastDuration(Toast.LENGTH_SHORT); // Default
feedbackSettings.setToastDuration(Toast.LENGTH_LONG);

//RADIO BUTTONS
feedbackSettings.setRadioButtons(false); // Disables radio buttons
feedbackSettings.setBugLabel("Bug");
feedbackSettings.setIdeaLabel("Idea");
feedbackSettings.setQuestionLabel("Question");

//RADIO BUTTONS ORIENTATION AND GRAVITY
feedbackSettings.setOrientation(LinearLayout.HORIZONTAL); // Default
feedbackSettings.setOrientation(LinearLayout.VERTICAL);
feedbackSettings.setGravity(Gravity.RIGHT); // Default
feedbackSettings.setGravity(Gravity.LEFT);
feedbackSettings.setGravity(Gravity.CENTER);

//SET DIALOG MODAL
feedbackSettings.setModal(true); //Default is false

//DEVELOPER REPLIES
feedbackSettings.setReplyTitle("Message from the Developer");
feedbackSettings.setReplyCloseButtonText("Close");
feedbackSettings.setReplyRateButtonText("RATE!");

//DEVELOPER CUSTOM MESSAGE (NOT SEEN BY THE END USER)
feedbackSettings.setDeveloperMessage("This is a custom message that will only be seen by the developer!");
feedBack.show();
}

private void openPageProfile() {
// TODO Auto-generated method stub
Intent intent = new Intent(this, profileDetailsActivity.class);
startActivity(intent);

}

private void openPageBook() {
// TODO Auto-generated method stub

}

private void openPageMessage() {
// TODO Auto-generated method stub

}

private void openPageExperience() {
// TODO Auto-generated method stub
Intent intent = new Intent(this, MoodActivity.class);
startActivity(intent);
}

public class MyLocationListener implements LocationListener {

@Override
public void onLocationChanged(Location loc) {
// TODO Auto-generated method stub
double lati = loc.getLatitude();
double longi = loc.getLongitude();

ParseUser currentUser = ParseUser.getCurrentUser();
currentUser.saveInBackground();

ParseGeoPoint point = new ParseGeoPoint(lati, longi);
currentUser.put("location", point);

currentUser.saveInBackground(new SaveCallback() {
@Override
public void done(ParseException e) {
setProgressBarIndeterminateVisibility(false);

if (e == null) {
// Success!

} else {

}
}
});

}

@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(),"Gps Disabled",Toast.LENGTH_SHORT).show();

}

@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(),"Gps Enabled",Toast.LENGTH_SHORT).show();


}

@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub

}
}
}

如果您需要任何说明,请告诉我。提前致谢。

更新 我试过使用单一更新,但它似乎不起作用。

在onCreate下

LocationManager mlocManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
LocationListener mlocListener = new MyLocationListener();


mlocManager.requestSingleUpdate(LocationManager.GPS_PROVIDER, mlocListener, Looper.myLooper());

    public class MyLocationListener implements LocationListener {

@Override
public void onLocationChanged(Location loc) {
// TODO Auto-generated method stub
double lati = loc.getLatitude();
double longi = loc.getLongitude();

ParseUser currentUser = ParseUser.getCurrentUser();
currentUser.saveInBackground();

ParseGeoPoint point = new ParseGeoPoint(lati, longi);
currentUser.put("location", point);

currentUser.saveInBackground(new SaveCallback() {
@Override
public void done(ParseException e) {
setProgressBarIndeterminateVisibility(false);

if (e == null) {
// Success!

} else {

}
}
});

}

@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(),"Gps Disabled",Toast.LENGTH_SHORT).show();

}

@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(),"Gps Enabled",Toast.LENGTH_SHORT).show();


}

@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub

}
}
}

最佳答案

你必须找到一种方法来删除像这样的更新

mlocManager.removeUpdates(mlocListener);

发送解析信息后

关于java - 使用 GPS 位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25986056/

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