Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.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 如果设备被锁定,url为空?_Java_Android_Sockets_Android Intent_Android Service - Fatal编程技术网

Java 如果设备被锁定,url为空?

Java 如果设备被锁定,url为空?,java,android,sockets,android-intent,android-service,Java,Android,Sockets,Android Intent,Android Service,我正在开发一个应用程序,我设置了一个服务,并从套接字获取了一个url。如果设备被解锁,它可以正常工作,但如果设备被锁定,它可以打开浏览器,但url是空的。有人能告诉我是什么问题吗?? 我的密码在这里 public class SocketService extends Service { Socket socket; private ServerSocket serverSocket; BufferedReader

我正在开发一个应用程序,我设置了一个服务,并从套接字获取了一个url。如果设备被解锁,它可以正常工作,但如果设备被锁定,它可以打开浏览器,但url是空的。有人能告诉我是什么问题吗?? 我的密码在这里

    public class SocketService extends Service {
            Socket socket;
            private ServerSocket serverSocket;
            BufferedReader in = null;
            static String url=null;
            @Override
            public void onCreate() {
                // TODO Auto-generated method stub
                super.onCreate();
                new Task().execute();

            }
                private class Task extends AsyncTask <Void, Integer, Void> {
                    @Override
                    protected Void doInBackground(Void... params) {    
                        try {
                            serverSocket = new ServerSocket(6066);

                        } catch (IOException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }

                        try {
                            while (true) {
                                socket = serverSocket.accept();
                                try {
                                    in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                                     try {
                                         StringBuilder total = new StringBuilder();
                                         String line;
                                         while ((line = in.readLine()) != null) {
                                             total.append(line);
                                         }                   
                                         url = total.toString();
                                         Log.d("NETWORK-RECEIVE","Message!:"+url);
                                        // String url2 = "http://www.cashsource.systelligence.com";
                                            Intent i = new Intent(Intent.ACTION_VIEW);
                                            i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                                            i.setData(Uri.parse(url));
                                            startActivity(i);
                                     } catch (IOException e) {
                                         e.printStackTrace();
                                         Log.d("NETWORK-RECEIVE", "Something goes wrong: IOException");
                                     }
                                } finally {
                                    socket.close();
                                }
                            }

                        } catch (IOException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                        finally {
                            try {
                                serverSocket.close();                               

                            } catch (IOException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                            }
                        }

                        return null;
                    }
                }

            @Override
            public int onStartCommand(Intent intent, int flags, int startId) {
                // TODO Auto-generated method stub
                Toast.makeText(getApplicationContext(),"Service Started", Toast.LENGTH_LONG).show();
                return super.onStartCommand(intent, flags, startId);
            }

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

        }
公共类SocketService扩展服务{
插座;
私有服务器套接字服务器套接字;
BufferedReader in=null;
静态字符串url=null;
@凌驾
public void onCreate(){
//TODO自动生成的方法存根
super.onCreate();
新任务().execute();
}
私有类任务扩展了异步任务{
@凌驾
受保护的Void doInBackground(Void…params){
试一试{
serverSocket=新的serverSocket(6066);
}捕获(IOE异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
试一试{
while(true){
socket=serverSocket.accept();
试一试{
in=新的BufferedReader(新的InputStreamReader(socket.getInputStream());
试一试{
StringBuilder总计=新StringBuilder();
弦线;
而((line=in.readLine())!=null){
合计.追加(行);
}                   
url=total.toString();
Log.d(“网络接收”,“消息:”+url);
//字符串url2=”http://www.cashsource.systelligence.com";
意向i=新意向(意向.行动\视图);
i、 设置标志(意图、标志、活动、新任务);
i、 setData(Uri.parse(url));
星触觉(i);
}捕获(IOE异常){
e、 printStackTrace();
Log.d(“网络接收”,“出错:IOException”);
}
}最后{
socket.close();
}
}
}捕获(IOE异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
最后{
试一试{
serverSocket.close();
}捕获(IOE异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
}
返回null;
}
}
@凌驾
公共int onStartCommand(Intent Intent、int标志、int startId){
//TODO自动生成的方法存根
Toast.makeText(getApplicationContext(),“服务已启动”,Toast.LENGTH_LONG.show();
返回super.onStartCommand(intent、flags、startId);
}
@凌驾
公共IBinder onBind(意向){
//TODO自动生成的方法存根
返回null;
}
}

帮帮我我遗漏了什么?

这是完整的代码吗?您是否使用了用于设备锁定/解锁状态的BoradCastereceiver?如果是,请尝试查找该代码中的问题。因为服务代码似乎很好。

我没有屏幕锁定或解锁代码,也没有接收器,这是完整的代码