【发布时间】:2014-08-10 20:38:19
【问题描述】:
为了在我的应用中节省电池电量,我决定使用“新”融合位置。但是我需要将一些参数传递给接收 GPS 更新的服务。下面的方法可以工作 (putExtras(...)),但我需要制作很多类 Serializable/Parseable,这会很痛苦。
我四处搜索并找到了使用 Binder 的其他方法,但不知道如何让它工作。使用 Binder 是唯一的方法还是有其他方法?
如果有什么不清楚的地方,请告诉。 谢谢。
public class LocationService extends IntentService {
...
public LocationService(StartActivity startActivity, DatabaseSQLite db, HomeFragment homeFragment) {
super("Fused Location Service");
...
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
db = (DatabaseSQLite) intent.getExtras().get("DatabaseSQLite");
...
return START_REDELIVER_INTENT;
}
}
这就是它在我的活动中的使用方式:
@Override
public void onConnected(Bundle bundle) {
mIntentService = new Intent(this, LocationService.class);
mIntentService.putExtra("DatabaseSQLite", database);
...
mPendingIntent = PendingIntent.getService(this, 1, mIntentService, 0);
}
【问题讨论】: