Mainacivity.java에서 SecondActivity.java의 GetData 클래스의 객체를 생성하여 객체를 통해
메소드에 접근하고 싶습니다! 제가 짠 코드대로 하면 GetData 클래스의 doInBackground 메소드가
호출이 아예 안 되는 것 같습니다.
혹시 어떻게 해결해야 할지 아시는 분 계신가요? 아신다면 답변 주시면 감사하겠습니다.!!
코드는 너무 길어서 중점적으로 필요한 부분만 간략하게 정리하여 붙였습니다.
//SecondActivity
package com.example.finalstudent_db;
public class SecondActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
class GetData extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... params) {
String serverURL = params[0];
String postParameters = "Snumber=" + params[1];
try {
URL url = new URL(serverURL);
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setReadTimeout(5000);
httpURLConnection.setConnectTimeout(5000);
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setDoInput(true);
httpURLConnection.connect();
OutputStream outputStream = httpURLConnection.getOutputStream();
outputStream.write(postParameters.getBytes("euc-kr"));
outputStream.flush();
outputStream.close();
int responseStatusCode = httpURLConnection.getResponseCode();
Log.d(TAG, "response code - " + responseStatusCode);
InputStream inputStream;
if (responseStatusCode == HttpURLConnection.HTTP_OK) {
inputStream = httpURLConnection.getInputStream();
} else {
inputStream = httpURLConnection.getErrorStream();
}
InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "euc-kr");
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
StringBuilder sb = new StringBuilder();
String line;
while ((line = bufferedReader.readLine()) != null) {
sb.append(line);
}
bufferedReader.close();
return sb.toString().trim();
} catch (Exception e) {
Log.d(TAG, "InsertData: Error ", e);
errorString = e.toString();
return null;
}
}
}
}
}
//MainActivity
public class MainActivity extends AppCompatActivity {
private GetData task;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button_search = (Button) findViewById(R.id.button_main_search);
button_search.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String Keyword = mEditTextSearchKeyword.getText().toString();
mEditTextSearchKeyword.setText("");
Intent intent = new Intent(MainActivity.this,SecondActivity.class);
startActivity(intent);
task = new GetData();
task.execute("http://"+IP_ADDRESS+"/query.php",Keyword);
}
});
}
}