【问题标题】:Accessing Background Service Through MainActivity通过 MainActivity 访问后台服务
【发布时间】:2012-04-28 09:38:52
【问题描述】:

所以我有一个获取位置更新的后台服务,我想从我的 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:如果我不退出我的活动,一切正常。仅当我退出我的活动并重新启动它时才会出现此问题。

【问题讨论】:

  • “它不工作...?”.. 解释更多.. 发生了什么?
  • 我说的是由activity启动的后台服务,然后activity被用户关闭并重新启动。该服务绑定到相同的活动和 start() (因此即使在活动关闭后它仍然存在)。通过不工作,我的意思是该方法没有返回任何东西,而它应该是。此外,方法调用之后的任何语句都不会执行。
  • 用更多信息更新了问题

标签: android service background location


【解决方案1】:

您只能从TabActivity 调用活动。您需要为选项卡设置特定活动,然后从该活动访问Service 的方法。所以基本上你的xxxService.yyyMethod() 电话应该在活动中。

【讨论】:

  • 这就是我正在做的!我没有收到编译错误或任何东西,但我的应用程序只是没有返回 yyyMethod 应该返回的值!事实上,它只是停止执行..
  • 我说的是活动启动的后台服务,然后活动被用户关闭,重新启动。该服务已绑定并且 start() (因此即使在活动关闭后它仍然存在)。
  • 我会给你相关的sn-ps:(我有大约10节课!)活动:LocationService.setProfile(Profile); (工作正常) LocationService.getL(); (执行在此语句处停止,此语句之后的所有语句都将被忽略)服务:public static Location getL() { return L; } 静态位置 L=null; (类变量)
  • 用更多信息更新了问题
  • 您的服务是否使用活动中的变量?也许这就是为什么当活动被杀死时,变量被破坏并且服务失败的原因。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-10
  • 2010-11-15
相关资源
最近更新 更多