所以我有一个后台服务获取位置更新,我想从tabActivity访问该服务。 (方法是静态的)
你能告诉我如何实现这个目标吗? 如果我尝试xxxService.yyyMethod()它不起作用。
我说的是活动启动的后台服务,然后用户关闭了活动并重新启动。该服务绑定到同一个活动,并且start()(因此即使在活动关闭后它仍然存在)。通过不工作我的意思是该方法不应该返回任何东西。此外,方法调用之后的任何语句都不会执行。 - Ishwar 27秒前编辑
在活动中: 边界: *
mConnection = new ServiceConnection() {
public void onServiceConnected(ComponentName className, IBinder service) {
temp="LocationService bound";
locationService = ((LocationService.LocalBinder) service).getService();
locationService.setProfile(Profile);
locationService.start();
Log.e("COnnected","");
mBound = true;
}
public void onServiceDisconnected(ComponentName arg0) {
mBound = false;
}
};
*
错误区域: *
LocationService.setProfile(homeProfile); (works fine)
LocationService.getL(); (Any statement beyond this point doesnt get executed)
Log.e("Executed","LS"); settingsActivity.status.append(Boolean.toString(LocationService.isRunning()));
*
如果我注释掉第2行,则第3行和第4行被执行,否则它不会! P.S:如果我不放弃我的活动,一切正常。只有在我退出活动并重新启动它时才会出现此问题。
答案 0 :(得分:0)
您只能从TabActivity
调用活动。您需要为选项卡设置特定活动,然后从该活动访问Service
的方法。所以基本上你的xxxService.yyyMethod()
电话应该在活动中。