【问题标题】:url is empty if device is locked android?如果设备被锁定 android,url 为空?
【发布时间】:2014-08-21 12:11:20
【问题描述】:

我正在开发应用程序,我设置了一项服务并从套接字获取一个 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;
            }

        }

帮我看看我错过了什么?

【问题讨论】:

    标签: java android sockets android-intent android-service


    【解决方案1】:

    这是完整的代码吗?您是否使用了一些 BoradcastReceiver 来进行设备锁定/解锁状态?如果是,请尝试在该代码中查找问题。因为服务代码看起来不错。

    【讨论】:

    • 我没有锁屏或解锁屏幕的代码,也没有接收器,这是完整的代码
    猜你喜欢
    • 2015-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多