参考下面的代码..我有一个类LocationService,并且在其中有一个可变的纬度。我想在另一个类Post中使用该变量。我怎么做。 基本上我想得到我从其他类中得到的经度和经度..因为我想在服务器上发布它。 那我该怎么做呢。
LocationService.java
public class LocationService extends Service{
Context context;
WakeLock wl;
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}
public int onStartCommand(Intent intent, int flags, int startId) {
PowerManager pm = (PowerManager)getSystemService(Context.POWER_SERVICE);
wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "lock");
wl.acquire();
context = this;
final String who = intent.getStringExtra("who");
final LocationManager locMan = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
final LocationListener listener = new LocationListener(){
// start location changed
public void onLocationChanged(Location loc) {
double latitude = loc.getLatitude();
double longitude = loc.getLongitude();
......
......
}
Post.java
public class Post extends LocationService {
}
EDITED Post.java
public class Post extends LocationService {{
super.latitude = loc.getLatitude();
}
}
这会让我获得从LocationService类到Post类的自由度吗??
答案 0 :(得分:1)
在LocationService中定义一些受保护的变量,然后Post可以看到它们。或者在LocationService中编写getter方法,并使用super.getLat
从Post调用它们答案 1 :(得分:0)
您的OOPS概念不明确。转到HERE
您必须将这些变量设置为Public,因为您希望它们在其他类中使用,并在声明Context
的地方声明它们。
然后你可以创建一个类的对象并使用它。明确基础知识。
答案 2 :(得分:0)
我遇到了同样的问题,请在此处查看问答:Android: pass parameter to Service from Activity
简而言之,您需要创建一个接口,声明要从Activity
调用的所有方法签名,在LocalBinder
中实现其方法,然后从您的{引用此接口{1}}。