title: java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation
body: <p>I am facing the problem while retrieving the contacts from the contact book in Android 8.0 Oreo java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation</p>
  
  <p>I am trying to get the contact in my activity from the phone contact book and it works perfect for Lollipop, Marshmallow, Nougat, etc but it will gives me the error for Oreo like this please help me. My code is here below.</p>
  
  <p><strong>Demo Code :-</strong></p>
  
  <pre><code>private void loadContacts() {
              contactAsync = new ContactLoaderAsync();
              contactAsync.execute();
          }
  
          private class ContactLoaderAsync extends AsyncTask&lt;Void, Void, Void&gt; {
              private Cursor numCursor;
  
              @Override
              protected void onPreExecute() {
                  super.onPreExecute();
                  Uri numContacts = ContactsContract.CommonDataKinds.Phone.CONTENT_URI;
                  String[] numProjection = new String[]{ContactsContract.CommonDataKinds.Phone.CONTACT_ID, ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME, ContactsContract.CommonDataKinds.Phone.NUMBER, ContactsContract.CommonDataKinds.Phone.TYPE};
                  if (android.os.Build.VERSION.SDK_INT &lt; 11) {
                      numCursor = InviteByContactActivity.this.managedQuery(numContacts, numProjection, null, null, ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + " COLLATE NOCASE ASC");
                  } else {
                      CursorLoader cursorLoader = new CursorLoader(InviteByContactActivity.this, numContacts, numProjection, null, null, ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + " COLLATE NOCASE ASC");
                      numCursor = cursorLoader.loadInBackground();
                  }
  
              }
  
              @Override
              protected Void doInBackground(Void... params) {
                  if (numCursor.moveToFirst()) {
                      try {
                          final int contactIdIndex = numCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.CONTACT_ID);
                          final int displayNameIndex = numCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME);
                          final int numberIndex = numCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);
                          final int typeIndex = numCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE);
                          String displayName, number, type;
                          do {
                              displayName = numCursor.getString(displayNameIndex);
                              number = numCursor.getString(numberIndex);
                              type = getContactTypeString(numCursor.getString(typeIndex), true);
                              final ContactModel contact = new ContactModel(displayName, type, number);
                              phoneNumber = number.replaceAll(" ", "").replaceAll("\\(", "").replaceAll("\\)", "").replaceAll("-", "");
  
                              if (phoneNumber != null || displayName != null) {
                                  contacts.add(phoneNumber);
                                  contactsName.add(displayName);
                                  contactsChecked.add(false);
  
                                  filterdNames.add(phoneNumber);
                                  filterdContactNames.add(displayName);
                                  filterdCheckedNames.add(false);
                              }
                          } while (numCursor.moveToNext());
                      } finally {
                          numCursor.close();
                      }
                  }
  
  
                  Collections.sort(contacts, new Comparator&lt;String&gt;() {
                      @Override
                      public int compare(String lhs, String rhs) {
                          return lhs.compareToIgnoreCase(rhs);
                      }
                  });
  
                  InviteByContactActivity.this.runOnUiThread(new Runnable() {
                      @Override
                      public void run() {
                          mContactAdapter.notifyDataSetChanged();
                      }
                  });
  
                  return null;
              }
          }
  
          private String getContactTypeString(String typeNum, boolean isPhone) {
              String type = PHONE_TYPES.get(typeNum);
              if (type == null)
                  return "other";
              return type;
          }
  
          static HashMap&lt;String, String&gt; PHONE_TYPES = new HashMap&lt;String, String&gt;();
  
          static {
              PHONE_TYPES.put(ContactsContract.CommonDataKinds.Phone.TYPE_HOME + "", "home");
              PHONE_TYPES.put(ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE + "", "mobile");
              PHONE_TYPES.put(ContactsContract.CommonDataKinds.Phone.TYPE_WORK + "", "work");
          }
  }
  </code></pre>
  
  <p><strong>Error Log:-</strong></p>
  
  <pre><code>E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example, PID: 6573
                                                               java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example/com.example.Activity.InviteByContactActivity}: java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation
                                                                Caused by: java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation
  </code></pre>