NfcScannerActivity라는 기본 메뉴 화면이있는 앱이 있습니다. 현재는 매니페스트에 실행 모드 (표준)가 없습니다. getRota를 클릭하면 매니페스트에 'singleTask'로 정의 된 로타 화면으로 이동하며 단순히 웹 콜에서 가져온 데이터의 목록보기입니다.인 텐트 및 onNewIntent
rota 화면에서 options 메뉴 바에서 nextRota를 클릭 할 수 있습니다. 이런 일이 발생하면 메뉴 화면 (NfcScannerActivity)을 지정하는 인 텐트가 시작되어 웹 콜이 다음 날의 로타 데이터를 가져 오는 위치가됩니다. 일단 데이터가 검색되면 로타 스크린이 다시 시작됩니다.
이 모든 것이 제대로 작동하지만 앱에 메뉴 화면의 인스턴스가 두 개 이상 있기 때문에 몇 가지 문제가 있음을 확신합니다. NfcScannerActivity를 'SingleTask'로 지정하면 다음 로타를 클릭 할 때 "NEXT_ROTA"인 텐트 액션을 처리하지 않은 것처럼 메뉴 화면에 유지됩니다.
NfcScannerActivity 활동에서 onNewIntent를 재정의해야 할 수도 있음을 이해합니다.
어떻게 처리하나요? 나는 다음을 시도했다.
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
}
.
'NEXT_ROTA'의도 동작을 처리하지 않는 것 같습니다. 고마워.
[EDIT1]
이 사용자가 옵션 메뉴에서 next_rota 클릭하면 내가 로타 활성을 가지고있는 것이다.
Intent i = new Intent(this, NfcscannerActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
i.putExtra("nextRota", nextDay);
i.setAction("NEXT_ROTA");
startActivity(i);
.
다음 NfcScannerActivity의 onCreate에서 나는 다음과 같은 것을 가지고있다.
if(intent.getAction().equalsIgnoreCase("NEXT_ROTA")){
Log.e(TAG, "next rota action");
String date = intent.getStringExtra("nextRota");
getNextRota(date);
}
.
getNextRota (date)는 웹 호출이 다음 로타의 데이터를 가져 오도록 AsyncTask를 호출합니다. onPostExecute에서는 다음을 수행합니다.
Intent intent = new Intent(NfcscannerActivity.this,
GetRota.class);
Bundle b = new Bundle();
b.putSerializable("rotaArray", rotaArray);
intent.putExtra("rotaArrayBundle", b);
startActivity(intent);
.
그래서 저는 onCreate 내부의 NfcScannerActivity에서 'NEXT_ROTA'인 텐트 액션을 이미 처리하고 있습니다. onNewIntent에서 동일한 작업을 수행해야합니까?
안녕하세요, 제발 제발 좀 봐 주 시겠어요. thanks – turtleboy
예 onNewIntent에서 동일한 작업을 수행해야하며 onNewIntent가 호출되면 onCreate가 호출되지 않습니다. – triggs
도움 주셔서 감사합니다. – turtleboy