简体   繁体   中英

Android activity unresponsive until back button is pressed

Below is the oncreate to my activity. My issue is that when the activity is started it is completely unresponsive until I press the back button. Once I press the back button it works perfectly.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_packs);
    count = 0;

    Bundle extras = getIntent().getExtras();
    if(extras != null || !equals("")){
        name = extras.getString("name");
    }
    else{name="PackActivity";}


    //getActionBar().setTitle(name);  
    ActionBar actionBar = getActionBar();
    //actionBar.setBackgroundDrawable(R.drawable.navigation_bar_colour_image);
    //actionBar.setHomeButtonEnabled(true);
    actionBar.setTitle(name);

    actionBar.setDisplayHomeAsUpEnabled(false);
    //actionBar.hide();
    database = new DataObjectDataSource(this.getApplicationContext());
    //load all the packs from the DB
    packs = loadPacks();
    //make the request for GetPacks
    sortArrayById();

    if(isOnline(this)) {
        HTTPRequest.getHTTPRequest(HTTPRequest.getPacksURL, this);
    }
    else{
        dialog("No internet connection available","their is limited functionality available in offline mode",1);
    }


    gridView = (GridView) findViewById(R.id.packGrid);

    adapter = new PackGridAdapter(this, getApplicationContext(), packs);
    gridView.setAdapter(adapter);
    gridView.setOnItemClickListener(this);

    System.out.println(" pack_ids ");
}

I have included the dialog function as the unresponsiveness comes after it have been dismissed.

public boolean dialog(String mes,String message,int type){
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    // Add the buttons
    if(type==2){
        builder.setMessage(message)
        .setTitle(mes);
        builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
                   public void onClick(DialogInterface dialog, int id) {

                   }
               });
    }
    // Create the AlertDialog
    final AlertDialog dialog = builder.create();
    dialog.show();
    if(type==2){
        final Timer t = new Timer();
        t.schedule(new TimerTask() {
            public void run() {
                dialog.dismiss();
                // when the task active then close the dialog
                t.cancel(); // also just top the timer thread, otherwise, you may receive a crash report
            }
        }, 5000);

    }
    return true;
}

2 Things:

1st confirm that your ActionBar code is working (comment the actionbar part to make sure that is not culprit here) to see if the activity is responsive or not

If the 1st doesn't work, and even after commenting ActionBar activity is unresponsive .. then

2nd comment these lines:

if(isOnline(this)) {
    HTTPRequest.getHTTPRequest(HTTPRequest.getPacksURL, this);
}
else{
    dialog("No internet connection available","their is limited functionality available in offline mode",1);
}

I suspect you're doing some network operation on your UI Thread, that could be the cause of Activity not Responding or it must have something to do with the dialog method you're using. If you show that method code, it could lead further to diagnose.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM