A액티비티에서 아이디와 패스워드 값을 입력 받고
버튼을 누르면 값은 서브쓰레드로 보내고, 화면은 B액티비티로 이동하려고 합니다.
액티비티에서 쓰레드로 값을 이동시킬 때 어떤걸 쓰면 좋을까요?
액티비티간 데이터 통신하는 인텐트로는 사용 불가한가요?
핸들러가 필요할까요?
현재 A액티비티 코딩
public class StartActivity extends Activity{
//private Handler mHandler;
EditText id;
EditText pw;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login_main);
id = (EditText) findViewById(R.id.ID);
pw = (EditText) findViewById(R.id.PW);
Button log_pt = (Button) findViewById(R.id.login_bt);
log_pt.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
final String idText = id.getText().toString();
final String pwText = pw.getText().toString();
Intent intent = new Intent(StartActivity.this, ImapThread.class);
intent.putExtra("idText", idText);
intent.putExtra("pwText", pwText);
// startActivitys(intent);
Intent intent2 = new Intent(StartActivity.this, SubActivity.class);
startActivity(intent2);
finish();
}
});
}
쓰레드
public class ImapThread extends Thread{
private Handler mHandler;
Intent id = new Intent();
String strid = id.getStringExtra("idText");
Intent pw = new Intent();
String strpw = pw.getStringExtra("pwText");
//생성자
public ImapThread(Handler handler){
this.mHandler = handler;
}
//스레드 정지 시키는 메소드
public void stopForever() {
synchronized (this) {
this.isRun = false;
notify();
}
}
//스레드 본체
public void run() {
int i=0;
// while(true) {
try {
while(isRun) {
if(strid == null && strpw == null){
System.out.println("없음");
} else System.out.println(strid+"/"+strpw);
GmailClient gmail = new GmailClient();
gmail.setAccountDetails(strid, strpw);
Message mes = new Message();
if( gmail.readGmail().isEmpty()) {
System.out.println("메일이 없습니다.");
}
else {
mes.what = MAIL_ID;
mes.obj = gmail.readGmail();
mHandler.sendMessage(mes);
}
try{
Thread.sleep(10000); //10초씩 쉰다.
}catch (Exception e) {}
System.out.println("i="+i);
i++;
}
// isRun = false;
} catch (Exception e) {
Log.e("IMAP Protocol", e.getMessage(), e);
// Message mes = new Message();
// mes.what = MSG_ID;
// mes.obj = new String("메읽을 읽는데 실패했씁니다.");
//mHandler.sendMessage(mes);
}
}
//}
}