먼저이 문제에 대한 몇 가지 게시물을 읽었지만 아무도 내 문제를 해결하지 못했다고해야합니다. 이 인트로 후 반환하면 내비게이션 창은 문서 상태와 같은 처음으로 표시됩니다ProgressDialog가 첫 실행 후 조각에 충돌 함
public class MainActivity extends AppCompatActivity{
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
...
//If first run, an intro is shown
if (!isIntroShown()) {
Intent intent = new Intent(MainActivity.this, IntroWellcomeActivity.class);
startActivity(intent);
setIntroShown(true);
finish();
}
//Navigation drawer set up
drawerLayout.setDrawerListener(this);
setUpToolbar();
setUpNavDrawer();
displayFragment(R.id.navigation_item_1);
navView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override public boolean onNavigationItemSelected(MenuItem menuItem) {
menuItem.setChecked(true);
displayFragment(menuItem.getItemId());
drawerLayout.closeDrawers();
return true;
}
});
: 응용 프로그램의 첫 번째 실행에
는 인트로 활동은 일부 데이터를 요청하는 시작됩니다 기본 조각이로드됩니다.이 부분은 소개에 소개 된 정보 (예 : 전화 번호)를 보여줍니다. 이 부분에서 원하는 경우이 번호를 변경할 수 있습니다. 이 작업을 수행하면 배경 작업이 완료되는 동안 진행 대화 상자가 표시됩니다.
하지만 여기에 문제가 있습니다. 이 첫 번째 실행에서는 왜 이런 일이 발생하는지 잘 이해하지 못하지만 진행 대화 상자가 표시 될 때 응용 프로그램이 충돌하여 logCat에 오류가 표시됩니다.
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.myapp, PID: 31388
android.view.WindowManager$BadTokenException: Unable to add window -- token [email protected] is not valid; is your activity running?
이 후 앱을 다시 실행합니다. 이번에는 인트로가 표시되지 않고 탐색 창 (첫 번째 실행에서만 발생 함)이 표시되지 않으며 다시 전화 번호를 수정하려고하면 진행 대화 상자가 표시되고 모든 것이 올바르게 작동합니다. 대신는 getContext()의)
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_profile, container, false);
...
progressDialog = new ProgressDialog(getContext());
내가 getActivity을 (사용 tryed했지만 문제가 해결되지 않습니다
이 나는 조각에해서 ProgressDialog를 시작하는 방법입니다.
인트로가 표시된 후 조각이로드되거나 무언가가 시작되지 않았거나 잘못된 위치에서 progressDialog를 시작한 것 같습니다. 나는 모른다.
사용 getActivity()해서 ProgressDialog를 초기화한다면, 시도 할 (! getActivity(). isFinishing()) {progressDialog.show()) 진행 대화 상자를 보여 주면서. 또한 progressDialog가 이미 표시되는지 확인합니다. 예 (Yes)를 닫고 다시 초기화하십시오. – Raghavendra
이것을 ProgressDialog 생성자에서 전달할 수 있습니까? getActivity(). getApplicationContext() – Vinodh