Ich lade einige Daten in MainActivity und versuche, einen Begrüßungsbildschirm während des Ladens anzuzeigen. Ich kann keine andere Aktivität verwenden, da ich nur Daten in der Hauptaktivität lade, also verwende ich Dialoge, um ein Bild anzuzeigen.Dialog show() funktioniert nicht in MainActivity
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
loading_dialog = new Dialog(MainActivity.this);
loading_dialog.setContentView(R.layout.loading);
loading_dialog.show();
Log.d(TAG,"show");
verifyPermissions(this);
res=new Resourses(this);
manager = new Manager(this, res);
loading_dialog.dismiss();
setContentView(R.layout.activity_main);
Log.d(TAG,"End");
view = (GLSurfaceView) findViewById(R.id.view);
view.setEGLConfigChooser(8, 8, 8, 8, 16, 0);
view.setRenderer(manager);
additionalSkuList = new ArrayList<String>();
for(int i=0;i<10;i++)
{
additionalSkuList.add(res.id[i]);
}
String base64EncodedPublicKey;
base64EncodedPublicKey= getResources().getString(R.string.inappkey);
mHelper = new IabHelper(this, base64EncodedPublicKey);
mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
public void onIabSetupFinished(IabResult result) {
// Log.d("main", "m here");
if (!result.isSuccess()) {
// Oh noes, there was a problem.
Log.d(TAG, "Problem setting up In-app Billing: " + result);
}
// Hooray, IAB is fully set up!
isIAB = true;
Log.d(TAG,""+isIAB);
mHelper.queryInventoryAsync(true, additionalSkuList, mQueryFinishedListener);
// Log.d("main", "" + isIAB + " " + isLoad);
}
});
// ATTENTION: This was auto-generated to implement the App Indexing API.
// See https://g.co/AppIndexing/AndroidStudio for more information.
}
Der Dialog wird jedoch nicht angezeigt, bis die oncreate-Methode ausgeführt wurde. Wenn ich das ausführe, kann ich den Dialog nicht sehen. Wenn ich loading_dialog.dismiss() abstelle, wird das Laden nach dem Laden aller Daten durchgeführt.
Kann jemand das Problem identifizieren?
GELÖST:
Das Problem war, nicht setContentView nicht initiieren, wenn Sie Renderer der Konstruktion initialisieren.
Also musste ich die Datenlast in der onSurfaceCreated-Funktion von GLSurfaceView verschieben. Daher wurden Daten geladen, nachdem die Inhaltsansicht initialisiert wurde.
Wenn Kommentar 'loading_dialog.dismiss();' Zeile dann wird es angezeigt oder nicht? –
ja, wenn ich die ablehnen kommentieren, nachdem alle Dateien geladen sind. Nach dem END-Tag zeigt es – sabby
was machst du es diese Pfandrechte .. 'verifyPermissions (this); manager = neuer Manager (this, res); 'Gibt es eine AsyncTask ?? –