为什么onStart没有被调用?

2023-12-09

我正在尝试实现一个非常简单的服务示例。 用户通过 EditText 输入值并单击计算按钮。计算按钮会触发一个服务,该服务执行一些计算并将结果发送回另一个 EditText 框。 如果我使用没有绑定的简单服务,则在执行计算之前会显示结果,因此我想使用绑定服务。但就我而言,控件仅在 onBind 调用处停止,并且 onStart 不会执行。不过,控制确实流向了 onCreate。谁能帮我找出我哪里出错了?

public class SimpleService extends Service {
    private final IBinder mBinder = new LocalBinder();


    @Override
    public IBinder onBind(Intent intent) {
        // TODO Auto-generated method stub
        System.out.println("Service: OnBind");
         return mBinder;
    }

    public class LocalBinder extends Binder {

        SimpleService getService() {
            System.out.println("Service: in Local binder");

            return SimpleService.this;
        }
    }

    @Override
    public void onCreate() {
        super.onCreate();
        System.out.println(" Service:In on create...");
        Toast.makeText(this,"Service created ...",         Toast.LENGTH_LONG).show()
    }

    @Override
    public void onDestroy() {
       super.onDestroy();
       System.out.println(" Service:in on destroy...");

       Toast.makeText(this, "Service destroyed ...", Toast.LENGTH_LONG).show();
    }

@Override
public void onStart(Intent intent, int startid) {
  System.out.println("Service:in onstart command ...");
  super.onStart(intent, startid);
  int res;
  String LOG_TAG =  "";
  int input2 = intent.getIntExtra("input", -1);
  int mode = intent.getIntExtra("mode", -1);
  String aString = Integer.toString(mode);
  Log.v(LOG_TAG, aString);
  if(mode == 1) {
         res = cal_F(input2);
    } else {
         res = cal_C(input2);
    }

  intent.putExtra("result", res);
     }

    }
#
public class ClassExamplesServiceActivity extends Activity implements  OnClickListener{

@Override
public void onClick(View v) {

    input = Integer.parseInt(input1.getText().toString());
    if(v.getId() == R.id.radio_fib)
        rd_button = 0;
    else if(v.getId() == R.id.radio_fact)
        rd_button = 1;
    else if (v.getId() == R.id.button1){

        intent = new Intent(this, SimpleService.class);
        intent.putExtra("input", input);
        intent.putExtra("mode", rd_button);
        doBindService();
        System.out.println("in class activity "+System.currentTimeMillis());

    }       

    else if(v.getId() == R.id.stop)
    {
        stopService(intent);
    }     
}

private ServiceConnection mConnection = new ServiceConnection() {

    public void onServiceConnected(ComponentName className, IBinder service) {
        System.out.println("\n in service connection");
        mBoundService = ((SimpleService.LocalBinder)service).getService();  
    }



public void onServiceDisconnected(ComponentName className) {
      System.out.println("\n in service disconnected");
      mBoundService = null;
  }
};

void doBindService() {
    System.out.println("in do bind service");

    boolean isConnected = bindService(new Intent(ClassExamplesServiceActivity.this, SimpleService.class), mConnection, Context.BIND_AUTO_CREATE);
    intent.putExtra("input", input);
    intent.putExtra("mode", rd_button);
    System.out.println("\n isconnected = "+ isConnected);
    mIsBound = true;
}
void doUnbindService() {
    if (mIsBound) {
        res = intent.getIntExtra("result", -1);
        result.setText(Integer.toString(res));// Set the result in the EditText
        // Detach our existing connection.
        unbindService(mConnection);
        mIsBound = false;
    }
}

@Override
protected void onDestroy() {
    super.onDestroy();
    doUnbindService();
}
}
#
<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
    <activity
        android:label="@string/app_name"
        android:name=".ClassExamplesServiceActivity" >
        <intent-filter >
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <service android:name=".SimpleService"></service>
</application>

您需要调用 Context.startService() 才能使用 onStart():http://developer.android.com/reference/android/content/Context.html#startService(android.content.Intent)

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

为什么onStart没有被调用? 的相关文章

  • 设置文本视图 Android 的文本颜色

    在 string xml 文件中我使用以下标签
  • 检查 WebView 元素时的 UiAutomator 错误

    I have recently started automation testing in android and was using UiAutomator tool for inspecting UI elements Surprisi
  • Android短音的正确播放方法?

    我正在创建一个应用程序 屏幕上将有多个图像 这些图像将是按钮 点击时会播放短促的声音 我对此进行了研究 只能找到我当前用来播放声音的方法 这似乎根本没有响应 我希望声音能够快速播放并且能够响应多次快速点击 我不确定这在 Android 中是
  • Xamarin Android Webview Javascript

    我正在尝试通过 Xamarin for Android 创建一个移动应用程序 它有一个显示网站的 WebView 问题是正常按钮会触发 但 javascript 事件不会触发 我已经启用了 Javascript 但没有运气 如何在 Andr
  • Android Q:file.mkdirs() 返回 false

    我们有一个应用程序 使用外部存储来存储一些临时文件 图像 二进制数据 该代码已经运行了几年 直到最近才发生重大变化 在 Android Q 上它不起作用 File f new File Environment getExternalStor
  • Recyclerview 动态部分不使用任何第三个库

    我想将标头添加到 recyclerview 我正在尝试使用来实现它 Override public int getItemViewType int position depends on your problem if position 0
  • 将现有 VARCHAR 列与 Room 结合使用

    我正在尝试将现有的数据库与 Android Room 一起使用 但是 我的一个表有一个 VARCHAR 列 Room 似乎只支持 TEXT 不支持 VARCHAR 而且 sqlite 不允许修改列类型 那么 有没有办法使用Room中现有的带
  • 通过 WhatsApp 发送消息

    由于我发现了一些较旧的帖子 表明 Whatsapp 不支持此功能 我想知道是否发生了变化 以及是否有办法打开与我通过意图发送的号码进行 Whatsapp 聊天 UPDATE请参阅https faq whatsapp com en andro
  • 在 Cordova 应用程序中获取额外功能

    我们有两个 Android 应用程序 一个使用本机 Java 实现 另一个使用 Ionic 编写 Ionic 应用程序启动我的应用程序 这是使用灯插件 https github com lampaa com lampa startapp 我
  • 当它的父级是 ConstraintLayout 时设计 CardView 吗?

    我在编辑包含Relativelayout的Cardview内的RelativeLayout时搞砸了 ConstraintLayout会将相对布局的wrap content更改为0并添加工具 layout editor absoluteX 1
  • Android 手机作为 GSM 调制解调器在 PC 上发送/接收短信?

    是否可以将 Android 移动设备用作 PC 上的 GSM 调制解调器 我正在 net下开发应用程序来发送 接收短信等 现在我想通过 USB 将我的 Android 设备连接到我的 PC 并将其用作 GSM 调制解调器来与其通信 这里是参
  • Android 2.3 模拟器在更新位置时崩溃

    我正在使用 Eclipse 编写和调试 Android 应用程序 我需要做的事情之一是更新设备的位置 因此我尝试使用模拟器控制窗口中的位置控制面板 在 手动 选项卡上 我选择 十进制 输入有效的纬度和经度 然后单击 发送 不幸的是 接下来发
  • Dagger 2 没有生成我的组件类

    我正在使用 Dagger 2 创建我的依赖注入 几个小时前它还在工作 但现在不再生成组件 这是我创建组件的地方 public class App extends Application CacheComponent mCacheCompon
  • Android Studio 缓慢的增量构建

    我已经完成了许多步骤来完善我们的构建系统 those https stackoverflow com questions 16775197 building and running app via gradle and android st
  • 没有用于警告的设置器/字段 Firebase 数据库检索数据填充列表视图

    我只是想将 Firebase 数据库中的数据填充到我的列表视图中 日志显示正在检索数据 但适配器不会将值设置为列表中单个列表项中的文本 它只说 没有二传手 场地插入值 这让我觉得我的设置器没有正确制作 但 Android Studio 自动
  • 没有支持 FEATURE_CAMERA_EXTERNAL 的 Android 设备

    根据this doc https source android com devices camera external usb cameras一些 Android 设备允许使用 Camera2 API 访问外部 USB 摄像头 我检查了大约
  • Android:如何从网络异步获取搜索建议?

    我创建了一个可搜索的活动 现在 我想添加从网络服务获取的搜索建议 我想异步获取这些建议 根据添加自定义建议 http developer android com guide topics search adding custom sugge
  • 如何使用 AccessibilityService 在 Android 中模拟按键

    我正在编写一个辅助服务 我一直在尝试在应用程序上进行一些自动搜索 我使用accessibilityservice action paste来填充EditText 然后我需要模拟软键盘上的按键 但我不知道如何做 你们能帮我一下吗 你可以尝试A
  • 错误:(23, 13) 无法解决:com.google.android.gms:play-services:11.2.0“安装存储库和同步项目”不起作用

    我正在尝试在我的 Android 应用程序中获取位置并更新到服务器 这是我的 Gradle 代码 我在这里包含了compile com google android gms play services 11 2 0 这条线是从文档中 htt
  • 我的应用程序中的后退按钮出现问题[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想在手机关闭时清除共享首选项值 你

随机推荐

  • Plotly:带有下拉菜单的散点图,用于更改数据和计算注释

    我正在尝试制作一个带有 2 个下拉菜单的散点图 用于选择要绘制 x 轴和 y 轴的数据列 来自 pandas 数据框 我还希望该图具有随下拉选择而变化的相关统计注释 因为注释是根据 x 和 y 数据作为参数计算的 我已经成功地使用下面的代码
  • 使用操作按钮刷新主面板屏幕

    我正在构建一个闪亮的应用程序 我想刷新主面板屏幕 这是示例代码 我有一个提交按钮来显示数据 我有一个刷新按钮来清除屏幕 我不太确定如何在 R 和闪亮中编写重新刷新按钮的代码 因为我对此很陌生 感谢您的关注 library DT ui lt
  • React hooks useEffect 第二次调用 API 和第一次调用 API 响应也返回

    我正在使用 useEffect 获取 API 并且 API 响应正确 例如 response message This is a image link status success error null 第二次 当我收到下一个 API 调用
  • 在 Android 中的 ViewPager 中将子 Fragment 添加到父 Fragment

    I m developing an app that has some tabs something like this 每个选项卡都是一个 Fragment 每个 Fragment 显示文章 类别和一些其他信息的列表视图 我想做的是 当我
  • 千字节/兆字节/太字节的表示

    我对不同字节单位的表示有点困惑 自始至终都认为 1 字节 8 位 然而 在很多来源中我看到 1 KB 2 10 字节 1024 字节 AND 1 KB 1000 字节 这不就是顶撞在这两种情况下都规定 1 字节是 8 位 不同的来源对这些不
  • GDI+ 通用错误

    当我的图像从网络服务器上的数据库加载时 我看到以下错误 GDI 中发生一般错误 在 System Drawing Image Save Stream流 ImageCodecInfo编码器 编码器参数 encoderParams at Sys
  • SoapClient 未发送证书

    我一直在阅读我能找到的所有问题 答案 但没有一个能解决我的问题 这是使用 cURL 和证书连接到同一 URL pem pem 文件的绝对路径 这有效 ch curl init wsdl curl setopt ch CURLOPT SSL
  • 编写XSL对xml数据执行一些操作

    如何在 products xsl 正文中编写 xsl 以获取数量 gt 10 的产品名称和状况 产品 xml
  • Rails 5.2 ActiveStorage 未定义方法 `signed_id' for nil:NilClass

    我实现了从我的中删除图像的代码User model Rails 5 2 Active Storage 清除 删除附件 我认为它删除了图像 但现在我收到错误 undefined method signed id for nil NilClas
  • 调用 EnvelopesApi#update_document_tabs 返回错误

    我想一次更新文档的所有选项卡 该文档的信封是根据已定义收件人和选项卡的模板创建的 我正在调用this具有以下有效负载的端点来更新选项卡 textTabs validationPattern validationMessage shared
  • 适用于 Windows Phone 7 的 Windows Live ID 身份验证

    我正在开发一个 Windows Phone 7 应用程序 但不想重新实现我自己的身份 身份验证服务 特别是当我们知道用户将使用 Windows Live 帐户登录时 但是我明白从这个线程Microsoft 不会授予对登录用户详细信息的访问权
  • 使用 Python 读取 MS-Word 文件中页眉和页脚中的表格内容

    这是我对这个问题的扩展问题 如何使用Python读取MS Word文件中表格的内容 YusuMishi 提供的解决方案很棒 但它没有捕获页眉和页脚中的页眉 Let me elaborate on that 使用代码 import win32
  • 如何优化这段javascript代码?

    如何优化这个功能呢 我可以为所有操作创建一个函数吗 b hat1 click function hat3 hide hat2 hide hat1 show b hat2 click function hat3 hide hat2 show
  • hibernate 和通用字段映射

    我想用 Hibernate 映射超类中的通用字段 我的妈妈班是 Entity Table name ParameterValue Inheritance strategy InheritanceType SINGLE TABLE Discr
  • 位移位、屏蔽还是位域结构?

    我是使用位的新手 我正在尝试使用现有协议 该协议可以发送三种不同类型的消息 类型1是16位结构 struct digital unsigned int type 2 unsigned int highlow 1 unsigned int s
  • 如何将aidl文件添加到Android studio(来自应用内计费示例)

    我目前正在将 Eclipse 应用程序迁移到 Android Studio 此应用程序使用应用程序内计费 我的主要问题是编译项目和aidl文件 我猜你们都使用这个文件 我收到此错误消息 Gradle error cannot find sy
  • 将两个ScrollView连接在一起

    这是我一直在解决的一个棘手的 iPhone 问题 我在页面上有三个 UIScrollView 一个仅水平滚动 一个仅垂直滚动 一个既水平又垂直滚动 我想将视图锁定在一起 以便水平滚动视图的水平位置与主滚动视图的水平位置匹配 垂直滚动视图同样
  • javax 与 java 包

    javax 包背后的基本原理是什么 java 和 javax 分别包含哪些内容 我知道很多企业包都在 javax 中 但 Swing 新的日期和时间 api JSR 310 以及其他 J2SE 包也是如此 起初javax旨在用于扩展 有时东
  • 将 HTML 从 JEditorPane 复制到外部应用程序时出现问题

    我在将 HTML 从 JEditorPane 复制到系统剪贴板然后粘贴到其他应用程序时遇到问题 OpenOffice 3 2 提示 请求的剪贴板格式不可用 Thunderbird 3 13 对粘贴不执行任何操作 Firefox 3 6 9
  • 为什么onStart没有被调用?

    我正在尝试实现一个非常简单的服务示例 用户通过 EditText 输入值并单击计算按钮 计算按钮会触发一个服务 该服务执行一些计算并将结果发送回另一个 EditText 框 如果我使用没有绑定的简单服务 则在执行计算之前会显示结果 因此我想