@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//서비스 시작과 동시에 구동함.
if(!isService) {
startService(new Intent(pairingActivity.this, socketService.class));
bindService(new Intent(this, socketService.class), mConnection, Context.BIND_AUTO_CREATE);
isService = true;
}
//disconnectButton();
setContentView(R.layout.activity_pairing);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
//toolbar.setTitleTextColor(Color.BLACK);
toolbar.setBackgroundColor(Color.WHITE);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowTitleEnabled(false);
TextView textView = (TextView)findViewById(R.id.textView);
// final Button btn_wifi = (Button) findViewById(R.id.btn_wifi);
final Button btn_cancel = (Button) findViewById(R.id.cancel_button_pairing);
final Button btn_confirm = (Button) findViewById(R.id.cancel_button_confirm);
final EditText edtTextAddress = null, edtTextPort=null;
final Intent intent = getIntent();
wp_id = intent.getStringExtra("WP_ID");
BUTTON_ID =intent.getStringExtra("BTN_ID");
wp_role = intent.getStringExtra("role");
token = FirebaseInstanceId.getInstance().getToken();
//액티비티 시작과 함께 데이터베이스 접속 해서 값 받아옴
mArrayList = new ArrayList<>();
GetData1 task = new GetData1();
task.execute("http://example.com/app/getjson.php");
System.out.println("Address:" +mArrayList.size());
//}
final ConnectivityManager manager;
final WifiManager wifiManager=(WifiManager)getSystemService(WIFI_SERVICE); //활성화 한지 와이파이 체크 하기 위함
manager = (ConnectivityManager) getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE); //와이파이 연결 체크
구현한 내역은 다음과 같습니다.
서비스에서 스레드를 이용한 소켓통신을 준비
OnCreate에서 서비스 시작 및 바인딩(소켓통신을 위해서) 같은 OnCreate에서 AsyncTask를 이용해 웹서버에서 JSON값을 받아옴
AsyncTask로 받아온 값과 소켓에서 받아온 값을 버튼을 눌렀을 때 비교하여 다음 액티비티로 이동 하는게 큰 설계 줄기입니다.
문제는 처음 액티비티가 시작되고 나서 백그라운드로 잠깐 나갔다 오거나 설정에 다녀오면(반드시 해야 함 ) OnCreate함수가 재호출 되어 위의 내역이 전부 다시 진행이 됩니다. 화면전환이나 키보드 전환등에 대해서도 검색해서 진행해봤는데 제 코드와 관계 없는 해결 내역인것 같습니다.
생명주기상 백그라운드를 켰다가 실행하면 OnCreate 함수가 실행이 안되어야 정상인거 같은데 제가 서비스를 바인딩해서 발생하는 문제인지요? 첨부한 내역은 OnCreate 함수 상단부분입니다. 혹시 이상있는 부분이 있으면 조언 부탁 드리겠습니다. 감사합니다.
P.s 특정기기에서만 안되는 경우가 있어서 혹시 스레드를 잘못 쓰는 문제인건가도 싶습니다. 어렵네요 ㅠ