使用基类活动将多个活动(选项卡)绑定到服务

2024-05-04

发帖后发现这些:

http://code.google.com/p/android/issues/detail?id=2665 http://code.google.com/p/android/issues/detail?id=2665http://code.google.com/p/android/issues/detail?id=2483

MyApp - first Activity that calls startService();
AwesomeService - background Service that starts a "connection" thread
ConnectedActivity - Activity with code to handle connection and service binding
MyAppActivity - Tabbed Activity
TabAActivity - Tab Activity

我有一个名为 ConnectedActivity 的 Activity 基类。在此类中,我处理与连接到远程系统的后台服务的绑定。 ConnectedActivity 还具有观察者方法,用于捕获连接中的更改以及来自服务的其他通知。

对于我的其他需要“连接”的活动,我只需扩展 ConnectedActivity。

我开发了一个选项卡式活动,其中选项卡也是活动。对于选项卡式活动和每个选项卡,我需要扩展 ConnectedActivity。

我遇到的问题是,当我加载选项卡式活动(和选项卡活动)时,它是绑定到服务的唯一活动。选项卡活动不绑定到服务。

下面,serviceBound() 是我在 ConnectedActivity 类中实现的回调,以便扩展 ConntectedActivity 的类可以在服务绑定后采取操作。您可以从我的日志文件中看到,只有 MyAppActivity 实际绑定。

是否可以将多个 Activity 绑定到一个 Service?

EDIT:找到了这个here http://developer.android.com/guide/topics/fundamentals/bound-services.html

多个客户端可以同时连接到该服务。但是,系统仅在第一个客户端绑定时调用 >service 的 onBind() 方法来检索 IBinder。然后系统将相同的 IBinder 传递给任何绑定的其他客户端,而无需再次调用 onBind()

所以现在我真正的问题是..这是否意味着回调(onServiceConnected()和onServiceDisconnected)不会在绑定的“第二个”活动中被调用?

结束编辑:

12-31 02:40:00.625: I/MyApp(31345): onCreate(Bundle savedInstanceState)
12-31 02:40:00.705: I/AwesomeService(31345): onCreate()
12-31 02:40:00.705: I/AwesomeService(31345): onStartCommand(Intent intent, int flags, int startId)
12-31 02:40:00.725: I/ConnectedActivity(31345): onCreate(Bundle savedInstanceState)
12-31 02:40:00.725: I/MyAppActivity(31345): onCreate(Bundle savedInstanceState)
12-31 02:40:00.836: I/ConnectedActivity(31345): onCreate(Bundle savedInstanceState)
12-31 02:40:00.836: I/TabAActivity(31345): onCreate(Bundle savedInstanceState)
12-31 02:40:00.896: I/ConnectedActivity(31345): onStart()
12-31 02:40:00.896: I/TabAActivity(31345): onStart()
12-31 02:40:00.956: I/ConnectedActivity(31345): onStart()
12-31 02:40:00.966: I/MyAppActivity(31345): onStart()
12-31 02:40:00.966: I/ConnectedActivity(31345): onResume()
12-31 02:40:00.966: I/MyAppActivity(31345): onResume()
12-31 02:40:00.966: I/ConnectedActivity(31345): onResume()
12-31 02:40:00.966: I/TabAActivity(31345): onResume()
12-31 02:40:00.976: I/AwesomeService(31345): onBind(Intent intent)
12-31 02:40:01.056: I/ConnectedActivity(31345): onServiceConnected(ComponentName className, IBinder service)
12-31 02:40:01.056: I/AwesomeService(31345): LocalBinder:getService()
12-31 02:40:01.056: I/MyAppActivity(31345): serviceBound()

我还希望看到:

AwesomeService(31345): onBind(Intent intent)
ConnectedActivity(31345): onServiceConnected(ComponentName className, IBinder service)
AwesomeService(31345): LocalBinder:getService()
TabAActivity(31345): serviceBound()

好吧,也许我之前使用 stackoverflow.com 并得到了快速回复,这让我被宠坏了。也许是临近过年了,除了我以外,每个人都有自己的生活,所以我不得不深入挖掘!我编辑了上面的帖子以包含这些链接:

http://code.google.com/p/android/issues/detail?id=2665 http://code.google.com/p/android/issues/detail?id=2665 http://code.google.com/p/android/issues/detail?id=2483 http://code.google.com/p/android/issues/detail?id=2483

在这些链接之一找到的最有趣的信息是实际的解决方案:

评论 2 者[电子邮件受保护] /cdn-cgi/l/email-protection, 2009 年 6 月 28 日 在您的应用程序上使用 getApplicationContext().bindService 而不仅仅是 bindService Activity 解决了这个问题,因为它使用了更高级别的应用程序上下文。

要添加到 Olivier 的评论,请确保对 unBindService() 调用也使用相同的上下文。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用基类活动将多个活动(选项卡)绑定到服务 的相关文章

  • Android 卷页动画

    我对 Android 动画有点陌生 目前我正在开发一个故事活动 需要像 iPhone 中那样使用卷页动画 我发现 iPhone 中有一种方法可以做到这一点 但我仍然找不到在android中做的方法 所以请帮我解决这个问题 谢谢大家 谷歌代码
  • 有没有一种方法可以在不使用意图的情况下在活动之间发送数据?

    我有一个对于每个用户来说都是唯一的用户名 我想将其发送到某个活动 但我不想使用意图 create an intent and sends username Intent intent new Intent RegisterOwner thi
  • 使用busybox在后台安装apk

    我可以在 root 设备上使用 busybox 在后台安装 apk 吗 我看到类似的东西 但它不起作用 process install CommandCapture command new CommandCapture 0 chmod 77
  • 在Java中测试服务器是否启动的正确方法?

    简单地查看是否可以建立与网站 服务器的连接的正确方法是什么 我想要这个用于我正在编码的应用程序 如果我的网站离线 它只会提醒我 Thanks 您可以使用 HttpURLConnection 发送请求并检查响应正文中是否有该页面特有的文本 而
  • Twowayview 滚动时自动添加内边距

    我在用双向视图 https github com lucasr twoway view在我的一个项目中 这是android的扩展回收者视图 https developer android com reference android supp
  • putExtra() 和 setData() 之间的区别

    putExtra 和 setData 有什么区别 我已经阅读了 android 文档 但没有太大帮助 还有之前的一个问题Intent setData 与 Intent putExtra https stackoverflow com que
  • app-release-unsigned.apk 未签名

    我在 github 上下载了 Android 应用程序的 zip 文件 并尝试运行它 但出现一个包含此消息的对话框 app release unsigned apk is not signed Please configure the si
  • 使用Picasso从url保存图像?

    我正在尝试使用 API Picasso 保存图像 为了做到这一点 我正在尝试使用Target保存 但我无法完成这项工作 我怎么能这样做呢 Trying save image public static void imageDownload
  • 如何在Android中访问现有的sqlite数据库?

    到目前为止 我们已经在 Android 中开发了在运行时创建数据库的应用程序 我们想知道如何在 Android 应用程序中访问预构建或现有的数据库 sqlite 文件 请提供详细信息 查看文档android database sqlite
  • 有人可以给出一个 android 中 webview 实现的确切例子吗

    嗨 我正在使用开发 Android 应用程序WebView执行 我跟着官方安卓教程 http developer android com resources tutorials views hello webview html 在 Ecli
  • 无法在 Android 上编译 avahi

    我是交叉编译的新手 我被分配了使用android补丁的任务http avahi org ticket 354 http avahi org ticket 354将 avahi 核心编译为 android ndk build avahi co
  • org.apache.http.conn.HttpHostConnectException:在 android 中连接到 http://localhost 被拒绝

    我正在制作一个应用程序 在执行它时将图像上传到服务器并将其数据库更新到android中的服务器 它显示错误 Connection to http localhost refused 还有更多错误 我研究了这个问题 发现不是提供 URL 连接
  • startActivityForResult中的requestCode是什么意思

    我想知道我是否正确理解 requestCode 的概念 这个整数的用途是什么 我将其设置为哪个整数有关系吗 private static int CAMERA REQUEST 谢谢 requestCode 可帮助您识别您从哪个 Intent
  • 动态地将textView添加到线性布局中

    我在这里的某个地方读过这篇文章 但我完全迷失了 但我需要一些帮助 我的应用程序正在将列名称从 sqlite 拉入数组中 我想创建一个文本视图并为每个视图编辑文本 通过数组的大小 我记得在某处读过 您可以将 textViews 变量名称视为数
  • 如何使用共享首选项在两个 Android 应用程序之间共享数据?

    我有两个应用程序 App1 和 App2 我想使用共享首选项在 App1 中保存数据并在 App2 中访问 反之亦然 我可以在 App1 中保存数据并在 App2 中访问数据 但反之则不行 这就是我现在正在做的 在清单中 android s
  • WPF:绑定到 ControlTemplate 中的命令

    我正在尝试向自定义 ListView MyListView 添加一个按钮 该按钮会触发 MyListView 中定义的命令 MyCustomCommand 我通过应用 ControlTemplate 添加了按钮 和标题文本 问题是我还没有找
  • 如何关闭导航抽屉以使用返回主页图标按钮?

    我也将操作栏与搜索栏一起使用 并且我需要像后退按钮一样使用 ActionBar ico 但我也在使用导航抽屉 如何关闭 隐藏 禁用导航抽屉菜单以使用后退按钮 我的 ActionBar 代码 Override public boolean o
  • android 中的 java.net.URL ..新手问题

    我是java新手 正在尝试android开发 以下代码生成 malformedURLException 有人可以帮助我识别异常吗 任何提示都会非常有帮助 package com example helloandroid import and
  • 如何解决android程序中的警告“从不本地读取”

    为什么我收到警告说 The field testscreen ScaleAnimToShow mVanishAfter is never read locally testscreen java testscreen src com tes
  • Android - 如何简单地拖放按钮?

    我在这里找到了一个适合初学者的教程 http androidrox wordpress com 2011 05 13 android sample app drag and drop image using touch http andro

随机推荐