我试图通过一个可以正常工作的意图传递我的价值,如果它是从Activity到另一个Activity。但这次是从活动到服务。我认为这是正确的方法?但我得到一个错误服务类
我的活动
@Override
protected void onPause() {
// TODO Auto-generated method stub
myLocation.disableCompass();
super.onPause();
locationManager.removeUpdates(this);
Intent intent = new Intent(this, LocationLoggerService.class);
intent.putExtra("midllat", midllat);
intent.putExtra("midlongi", midlongi);
startActivity(intent);
}
我的服务类
@Override
public void onCreate() {
// Find my current location
locationManager = (LocationManager) this
.getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,
2000, 0, this);
Criteria crit = new Criteria();
towers = locationManager.getBestProvider(crit, false);
Location location = locationManager.getLastKnownLocation(towers);
Toast.makeText(this, "The app is know running in the background",
Toast.LENGTH_LONG).show();
gm = new GoogleMaps();
我在getIntent()中遇到错误它无法找到方法,是因为它在服务类中?怎么办?
Intent intent = getIntent();
String test1 = intent.getStringExtra("midllat");
String test2 = intent.getStringExtra("midlongi");
midllat = Double.parseDouble(test1);
midlongi = Double.parseDouble(test2);
}
答案 0 :(得分:0)
当然有一个问题:
startActivity(intent);
如果您尝试启动Service
,则不应该致电startActivity
。请改为startService
。
假设你忘记在你的问题中改变它,你指出的另一个问题是getIntent
。 Service
没有该方法。这是一种Activity
方法。服务通常与许多意图相关联,通常是同时的,因此getIntent
方法实际上没有意义。仔细阅读Service
的文档,尤其是lifecycle section。
您可能希望将Intent
相关代码放在onStartCommand
。