Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当活动暂停时,它实例化的对象会发生什么情况_Java_Android_User Interface_Chat_Client Side - Fatal编程技术网

Java 当活动暂停时,它实例化的对象会发生什么情况

Java 当活动暂停时,它实例化的对象会发生什么情况,java,android,user-interface,chat,client-side,Java,Android,User Interface,Chat,Client Side,每当我用Java编写聊天客户端时,我都会让客户端类实现runnable,并在run()中编写一个无限循环来接收数据。 现在,在安卓系统中,我也想这样做,但我面临着某些问题: 活动启动的线程是否在活动暂停时运行 暂停时,活动实例化的对象会发生什么情况 发送数据的代码仍然在接口类中,这好吗 尝试使用服务对象。即使应用程序暂停或发送到后台,它仍将运行 活动启动的线程是否在活动暂停时运行 是的,除非系统销毁活动,否则线程将保持活动状态。例如,在内存不足的情况下,可能会发生这种情况。因此,如果实现长时

每当我用Java编写聊天客户端时,我都会让客户端类实现runnable,并在run()中编写一个无限循环来接收数据。 现在,在安卓系统中,我也想这样做,但我面临着某些问题:

  • 活动启动的线程是否在活动暂停时运行
  • 暂停时,活动实例化的对象会发生什么情况
  • 发送数据的代码仍然在接口类中,这好吗

  • 尝试使用服务对象。即使应用程序暂停或发送到后台,它仍将运行

    活动启动的线程是否在活动暂停时运行

    是的,除非系统销毁
    活动
    ,否则线程将保持活动状态。例如,在内存不足的情况下,可能会发生这种情况。因此,如果实现长时间运行的后台操作,最好使用
    服务

    暂停时,活动实例化的对象会发生什么情况

    活动
    返回前台时,仍然可以访问对象。但是,如果
    活动
    被销毁或重新创建,对象也将被销毁


    第三个问题不清楚,澄清后我很乐意提供答案。

    1。活动启动的线程将运行,因为线程是不同的执行路径。期待2和3.1的答案。是的。没什么特别的。3.我不明白你的问题,(但我会说不,相对于一项活动而言,建立人际网络通常不是一件好事(尽管在很多情况下完全可以接受))2.
    当活动暂停时,活动实例化的对象会发生什么情况?
    只要活动保持活动状态,对象就会保持活动状态,不要将无限循环放入
    活动中
    ,因为这些对象在不可见时会被终止。另外,如果线程不是一个静态类,您可能会引发内存泄漏,请为此使用一个专用类(可能是一个
    服务
    ,以便在Android决定杀死哪个应用程序时增加应用程序的得分)。你能解释一下谁是接口类吗?@njzk2:(3)意味着每当用户按下按钮发送数据时,这个函数[dataout.writeUTF(message)]在UI线程中运行/没有单独的线程。这很糟糕,对吧。或者,发送数据只是JVM的工作,函数将快速返回?(3)意味着每当用户按下按钮发送数据时,此函数[dataout.writeUTF(message)]在UI线程中运行/没有单独的线程。这很糟糕,对吧。或者只是JVM发送数据,函数会很快返回?@Prince,是的,这很糟糕。此操作应使用单独的线程。