在我的应用中,我将一个活动切换到另一个活动(Main.java到Feature_Screen.java)。在Feature_Screen(第二个活动)中,我将下载大量数据和图像以在网格视图中设置。所以我使用Async Task下载它。虽然我在第二个活动中使用异步任务,但在将Main.java切换到Feature.java时会出现黑屏。我在谷歌搜索,但所有答案都说使用异步任务。
示例编码:
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;
}
}
}
我的问题是如何在活动之间切换时避免黑屏?请帮帮我。
答案 0 :(得分:0)
最后我找到了黑屏问题的答案..
如下所示使用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()
中取消它。