как убрать черный экран при переключении активности (не работает) - на андроид - PullRequest
1 голос
/ 25 ноября 2011

в моем приложении я переключаю одно действие на другое (от Main.java до Feature_Screen.java). В Feature_Screen (второе действие) я собираюсь загрузить большое количество данных и изображений, чтобы установить их в виде сетки. так что я использую Async Task для его загрузки. хотя я использую асинхронную задачу во втором упражнении, при переключении Main.java на Feature.java у меня появляется черный экран Я ищу в Google, но все ответы говорят, что использовать Async Task.

пример кодирования:

public class Main extends TabActivity{

public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.tabbar);
    .................
    intent = new Intent().setClass(this, Featured_Screen1.class);
    spec = tabHost.newTabSpec("home").setIndicator("",
            res.getDrawable(R.drawable.top_book_icon)).setContent(intent);
    tabHost.addTab(spec);
    ...........
}
}

В Feature_Screen1.java (Second.java):

public class Feature_Screen1 extends Activity{

public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.feature);
    .................
      new Content_load().execute();
    ...........
}

 class Content_load extends AsyncTask<Void, Void, Void> 
   {
ProgressDialog dialog = new ProgressDialog(SignInPage.this);

protected void onPreExecute() { 
    dialog.setMessage("Please wait...");
    dialog.setCancelable(false);
    dialog.show();
}

protected void onPostExecute(Void unused) {
    dialog.dismiss();
}

protected Void doInBackground(Void... arg0) {
      ..........
  return null;
   }
  } 

}

Моя проблема в том, как избежать черного экрана при переключении между действиями? пожалуйста, помогите мне.

1 Ответ

0 голосов
/ 30 мая 2012

Наконец-то я нашел ответ на проблему с черным экраном.

Используйте AsyncTask, как показано ниже, у меня это сработало, если у вас возникнут проблемы, дайте мне знать

public class SyncroniseRecords extends AsyncTask<Void, Void, Void>
{  
    @Override
    protected void onPreExecute()
    {  
        super.onPreExecute();
        dialog.setMessage("Please wait...");
        dialog.setCancelable(false);
        dialog.show();

    } 
    @Override 
    protected void onProgressUpdate(Void... values) {
        super.onProgressUpdate(values);
        // Things to be done while execution of long running operation is in progress. For example updating ProgessDialog
     }

    @Override 
    protected void onPostExecute(Void result)
    { 
           dialog.cancel();
    }
    @Override
    protected Void doInBackground(Void... params) {

        return null;
    }
} 

Это запуститсяДеятельность без какого-либо черного экрана.Используя onPreExecute, вы можете отобразить индикатор выполнения. Как только процесс завершится, вы можете отменить его в OnPostExecute().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...