相关疑难解决方法(0)

绑定到onCreate()或onResume()中的服务

我想知道Activity绑定到服务的最佳位置是什么?我看到的例子在做onResume()和也onCreate().我问自己这是不是一个问题onCreate(),因为onPause()我会对服务进行解除绑定,所以如果我离开活动,我就不会得到serviceConnectionLeak.现在,如果我按下主页按钮然后切换到主屏幕,当我从任务管理器返回活动时,活动将取消绑定服务,然后onCreate()将不会被调用,如果代码试图访问某个功能从服务我将得到一个NullPointerException.如果我只绑定和取消绑定onResume(),onPause()我没有这个问题.我对吗?

android

21
推荐指数
1
解决办法
2万
查看次数

TCP套接字的Android服务

基于我在此问过的上一个问题中的建议,我正在尝试将我的套接字连接推送到我已写入服务的应用程序中.昨天我花了大部分时间来研究服务,并且实际上嘲笑了一些(一个远程,一个本地).

我的问题分为两部分:

1)在玩过本地服务和远程服务之后,我仍然不确定哪一个最符合我的情况.这在很大程度上是因为我想我仍然不太明白在另一个"过程"中运行的优势会给我什么.我正在为套接字连接生成一个新线程,无论如何我都不会与UI有任何线程争用.那么将服务放在另一个流程中能让我做到什么呢?我可能会以这种方式看到更好的表现吗?我有限的理解是,通过将其置于不同的过程中,该服务将独立于我在我的应用程序上运行的任何活动而运行.我确实有一些不同的活动,但只有其中一个需要套接字连接,无论如何每次打开活动时我都会重建.

2)我将在我的服务中为我从服务器传递的任何新数据中的套接字"监听器"(DataInputStream().readLine()).在我昨天玩的游戏之后,我无法弄清楚如何在"实时"中将它读取的数据传递给实际的"客户端"(由远程服务绑定客户端,或本地客户端本身).

非常感谢第1部分的一些建议,以及第2部分的一些帮助(代码示例?:))

TIA

编辑:添加了我的服务代码 - 使用本地服务

服务类别:

   public class SocketService extends Service {

    Socket s;
    PrintStream os;

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

    private final IBinder myBinder = new LocalBinder();

    public class LocalBinder extends Binder {
        public SocketService getService() {
            return SocketService.this;
        }
    }


    @Override
    public void onCreate() {
        super.onCreate();
        s = new Socket();
    }

    public void IsBoundable(){
        Toast.makeText(this,"I bind like butter", Toast.LENGTH_LONG).show();
    }

    public void onStart(Intent intent, int …
Run Code Online (Sandbox Code Playgroud)

sockets service android

5
推荐指数
1
解决办法
2万
查看次数

标签 统计

android ×2

service ×1

sockets ×1