如何从android服务获取返回值

2024-02-27

我遇到的问题是我不知道如何从服务中获取返回值。为什么我想要从服务返回值是我想在活动页面中显示这个返回值。以下是我的服务文件,返回值是retvalue.

public class SyncService extends Service{
    private String forSync, lastrecordfromlocal, userdefined;
    DatabaseUtil dbUtil = new DatabaseUtil(this);

    @Override
    public IBinder onBind(Intent arg0) {
        // TODO Auto-generated method stub
        return null;
    }

    @SuppressWarnings("deprecation")
    @Override
    public void onStart(Intent intent, int startId) {
        // TODO Auto-generated method stub
        super.onStart(intent, startId);   

        forSync = common.getInfoForSync(this); 
        String[] getlist = forSync.split(":");
        lastrecordfromlocal = getlist[0].toString(); 
        userdefined = getlist[1].toString();

        if (common.isNetAvailable(this) == true) {
            SyncServiceTask InstallData = new SyncServiceTask(this);
            try {
                String (((retvalue))) = InstallData.execute(lastrecordfromlocal, userdefined).get();
            } catch (InterruptedException e) {
                e.printStackTrace();
            } catch (ExecutionException e) {
                e.printStackTrace();
            }                               
        }        
        this.stopSelf();
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
    }    
}

据我所知,服务与活动通信的常用方式是播送.

您可以通过以下方式在您想要“返回 retvalue”的位置发送广播:

Intent retIntent = new Intent(ServiceReturnIntent);
retIntent.putExtra("retvalue", retvalue);
sendBroadcast(retIntent);

其中ServiceReturnIntent和“retvalue”都是自定义的字符串,用于标识广播和值名称。

在您希望捕获返回值的活动中,您应该有一个广播接收器,其中包含以下内容:

public class myActivity extends Activity implements BroadcastReceiver {
    TextView myTextView;

 @Override
     OnCreate(Bundle savedInstanceState) {
         setContentView(R.layout.simple_layout);
         myTextView = (TextView) findViewByID(R.id.simple_textview);
     }  

 @Override
    public void onReceive(Context context, Intent intent) {

        int action = jumpTable.get(intent.getAction());
        switch (action) {
    case ServiceReturnIntent:
            String valueFromService = intent.getStringExtra("retvalue");
                myTextView.setText(valueFromService);
                break;
            // handle other action 
         ......
    }
}

你可以阅读本教程 http://www.vogella.com/articles/AndroidBroadcastReceiver/article.html有关 Android 中广播的更多信息。

EDIT修改示例代码并将其设置为文本视图

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

如何从android服务获取返回值 的相关文章

随机推荐

  • 如何检查字典是否是另一个复杂字典的子集

    我需要验证另一个字典是否是另一个字典的子集 有一个技巧 在这些字典中有字典数组 超集 dct 1 x x y t 123 a a subset dict 2 x x y t 123 from 检查字典是否是另一个字典的子集的递归函数 htt
  • 如何在 WinUI 3 中从 C# 调用 Powershell 函数

    我正在尝试调用 PowerShell 脚本文件中的函数 我在用WinUI 3 我在调试器输出中得到难以理解的输出 并且 PowerShell 脚本似乎根本没有执行 我已验证当我直接从 PowerShell 运行 PowerShell 脚本
  • C# 最高字符串

    这看起来很微不足道 但我没有通过谷歌找到答案 我正在寻找排序字符串列表末尾的信号量字符串的高值 在我看来 char highest ToString 应该这样做 但这比较低 而不是高 显然 创建尽可能高的字符串是不可能的 因为它总是低于相同
  • 在 spring-mvc 上处理密码确认

    我正在 spring mvc 中进行用户增删改查 我的模型具有以下属性 private Long id private String password private String username private Collection
  • 电子邮件营销经理如何报告退回的电子邮件?

    谁能指出我如何处理捕获退回电子邮件信息的正确方向 我正在考虑编写一个电子邮件活动经理 并且希望能够报告该数据 您可以编写一个应用程序来轮询坏邮件文件夹以识别退回的电子邮件 发送电子邮件后 您应该等待一段时间 然后再检查电子邮件是否已送达或退
  • pandas数据框的条件过滤

    我有一个关于足球结果的熊猫数据框 数据帧的每一行代表一场足球比赛 每场比赛信息如下 Day WinningTeamID LosingTeamID WinningPoints LosingPoints WinningFouls 1 13 1
  • 如何输出DOM文档?

    也许我遗漏了一些东西 但是这段代码中的 DOM 对象是空的 input file get contents http www google com doc new DOMDocument doc gt loadHTML input supr
  • 如何在 MLPClassifier 中设置初始权重?

    我找不到设置神经网络初始权重的方法 有人可以告诉我如何设置吗 我正在使用 python 包 sklearn neural network MLPClassifier 这是供参考的代码 from sklearn neural network
  • JS 闭包上下文对象的生命周期?

    背景 我正在尝试移植长生不老药演员模型语言原语转换为 JS 我想出了一个解决方案 用JS 来模拟receiveelixir 关键字 使用 接收器 函数和生成器 这是一个简化的实现和演示 向您展示这个想法 APIs type ActorRef
  • 即使使用相同的密钥库,更新 apk SHA1 也会有所不同

    I have uploaded my app to Goggle Play few months back after signing it with a release keystore I have stored that Keysto
  • 检查 exec.Cmd 是否在 Go 中运行完毕

    我正在尝试检查是否exec Cmd 在跑在这些场景中 在我真正开始命令之前 命令开始之后但完成之前 命令完成后 这将允许我终止该命令 如果它正在运行 以便我可以使用不同的参数再次启动它 下面是一个简单的用例 c exec Command o
  • 网络浏览器无法打开新窗口

    我刚刚找到了一份远程工作的新工作 我必须通过打开一堆页面并登录来开始我的一天 我很想自动化这个过程 因为它可能有点乏味 我想保留我的个人浏览窗口并打开一个包含我需要的所有页面的新窗口 这是我想做的事情的要点 import webbrowse
  • iOS 8 / Safari 8 不支持 ASP.NET AJAX 扩展

    iOS 8 推出后 我们的网站突然停止运行 ASP NET UpdatePanel 内的每次回发都会导致一个空页面 如果在 Safari 8 在 Mac 上 中将用户代理设置为 Chrome 它仍然有效 我已经发现 一些 ScriptRes
  • 受歧视工会没有多余的财产检查

    给定的是受歧视的联合类型S1 S2 S3 type S1 d1 foo type S2 d1 bar isSuccess true type S3 d1 baz isSuccess false errorMessage string typ
  • Google App Engine:添加到任务队列比执行数据存储写入更快吗?

    我正在尝试通过将后台任务添加到任务队列而不是立即执行操作来优化应用程序的一些面向用户的部分 对于 CPU 密集型任务来说 这样做是一个明显的选择 但是如果只是保存数据呢 平均而言 执行 taskqueue add 操作或 db put 操作
  • 如何切换标记?

    我制作标记的代码 for var marker in markers var posMarker new google maps Marker position new google maps LatLng markers marker l
  • 重定向多个标准输入?

    我有三个文件 名为一 二 三 其中一项包含 1 3 2 两个包含 4 6 5 三包含 7 9 8 当我发出以下命令时 sort lt One lt Two lt Three 我得到输出 7 8 9 但是当我发出以下命令时 sort One
  • 使用 Inno Setup 安装时应用程序无法运行

    我正在开发桌面数据库应用程序 使用rdlc报告和reportviewer 开发过程中一切顺利 reportviewer 可以顺利显示所有数据 我使用 Inno Setup 部署应用程序 但是当我安装该应用程序时 报告查看器不显示数据 当数据
  • jsPDF/html2canvas 通常会丢失空格和文本错位

    我正在使用 html2canvas 和 jsPDF 生成 pdf 客户端 无论我选择什么设置 我都会在 html 到 pdf 渲染中丢失字母空格 有设置可以解决这个问题吗 我已经检查了 API 并更改了我能想到的所有可能的设置 但间距没有改
  • 如何从android服务获取返回值

    我遇到的问题是我不知道如何从服务中获取返回值 为什么我想要从服务返回值是我想在活动页面中显示这个返回值 以下是我的服务文件 返回值是retvalue public class SyncService extends Service priv