Java 如果设备被锁定,url为空?
我正在开发一个应用程序,我设置了一个服务,并从套接字获取了一个url。如果设备被解锁,它可以正常工作,但如果设备被锁定,它可以打开浏览器,但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
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?如果是,请尝试查找该代码中的问题。因为服务代码似乎很好。我没有屏幕锁定或解锁代码,也没有接收器,这是完整的代码