0
Mainactivity.java에서 wifi에서 신호 강도를 5 번 받아 서비스에 추가하고 있습니다. 나는 의도를 통해 arraylist를 전달합니다. 나는 다른 파일에서 인 텐트를 통해 값을 얻는다. 자,이 값을 Java 데스크탑 서버에 전달하고 싶습니다. Intent의 onStart에서 asynctask 메서드를 호출합니다. 나는 어떤 오류도 내지 않는다. 그러나 가치는 표시되지 않습니다.Android 애플리케이션의 값 전달 및 콘솔에 표시
로그 cat을 수행하면 값이 표시됩니다.
당신은 내가
나는 당신이 (onPostExecute에 값을 반환해야한다고 생각public class javaServiceClass extends Service {
public void onStart(Intent intent, int startId) {
ArrayList<String> stock_list = (ArrayList<String>) intent.getExtras().get("stock_list");
System.out.println(stock_list.get(1));
messsage = stock_list.get(0);
new Asynctask1().execute(messsage);
}
public class Asynctask1 extends AsyncTask<String, Void, Void> {
private PrintWriter printwriter;
protected Void doInBackground(String... messages) {
final String IP_ADDRESS = "134.190.162.165";
final int DEST_PORT = 4444;
if(messsage !=null){
//Socket client = null;
try {
Socket client = new Socket(IP_ADDRESS, DEST_PORT); // connect to server
printwriter = new PrintWriter(client.getOutputStream(), true);
printwriter.write(messsage); // write the message to output stream
printwriter.flush();
printwriter.close();
client.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
else
{ System.out.println(messsage);}
return null;
Android 기기와 데스크톱 시스템이 상호 라우팅이 가능한 네트워크 (일반적으로 동일한 Wi-Fi를 의미 함)에 있다는 사실을 알고 계십니까? 바탕 화면에 방화벽이없고 실제로 서버가 수신 대기하고 있는지 확인하십시오. 코드에 로깅을 추가하여 데스크톱 연결이 성공적으로 시작되었음을 나타냅니다. 또한 메시지가 실제로 null이 아님을 나타내는 로깅을 추가합니다 (null 인 경우 System.out.println (message)를 시도하지 마십시오). –
@ChrisStratton, 방화벽을 비활성화했습니다. TXexbox와 버튼으로 Asynctask 만 실행하면 버튼을 클릭하면 텍스트 상자의 텍스트가 javadesktop 서버에 표시됩니다. – user3345483
그런 다음 작동 중과 작동하지 않는 경우의 차이점을 추적하기 위해 일부 로깅을 입력해야합니다. –