我是一名Android的新手,请耐心等待。我正在编写一个应用程序,使用前台服务在Service类中跟踪智能手机,并使用通知来确保该服务不会被操作系统杀死。除了发送坐标到服务器时出现的Networkonmainthreadexception异常,一切都很好。插入policy.permitall可以解决这个问题,但是我想使用一个单独的线程来解决它。然而,即使在新线程中启动前台服务(使用start()方法),我仍然收到网络异常。
由于长时间运行的服务,我将Asynctask作为第二选择。我尝试了IntentService,但由于GPS跟踪的原因,生成的代码结构并不是最好的。
以下是启动新线程的简单代码:
@Override
public void run() {
Intent rastreoIntent = new Intent(mContext, RastreoS.class );
rastreoIntent.setAction(RastreoS.ACTION_START_FOREGROUND_SERVICE);
startService(rastreoIntent);
}
};
t.start();
我的问题是:一个前台服务能否在主线程之外运行?即使在新线程中启动,通知是否与UI绑定,将前台服务绑定到主线程?