黑屏切换活动

时间:2010-09-13 09:03:51

标签: android progressdialog

我正在使用我的某个活动中的代码来启动另一个

Intent viewIntent = new Intent(getApplicationContext (), landingPage.class);
Bundle b = new Bundle();
b.putString("ApplicationName", a_Bean.getApplicationName());
if (landingPage.getInstanceCount() < 1)
    bp.landingPage_ProgressDialog = ProgressDialog.show(ViewAllApp.this, "Please wait...", "Retrieving data...", true, false);
viewIntent.putExtras(b);
viewIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivityForResult(viewIntent,10);
Thread background = new Thread(new Runnable() {
    public void run() {
        Progresshandler.sendMessage(handler.obtainMessage());//finishes progressDialog
}});
background.start();

但是在开始活动后它会显示黑屏&amp;然后显示新活动。 我可以在显示黑屏时显示progressdialog吗?

3 个答案:

答案 0 :(得分:4)

这对我有用:

Intent intent = new Intent(LocationGrid.this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
overridePendingTransition(0, 0);

答案 1 :(得分:1)

您的代码有点令人困惑且不清楚。请指定目标。无论如何,我看到的一些事情:

1-不要使用getApplicationContext(),Activity本身就是一个Context,因此最好使用:

new Intent (this, landingPage.class);

2-您无需创建Bundle即可为意图添加字符串。

viewIntent.addExtra("ApplicationName", a_Bean.getApplicationName ());

无论如何,绕过你的活动,应用程序的名字对我来说似乎是一个可怕的想法。如果您在整个活动中确实需要应用程序的名称,请创建一个Application类作为应用程序的中心点。我真的建议你重新审视你的架构。

3-您确定要从其父亲访问活动landingPage吗?我假设landingPage在某处实例化。我发现这是一种可怕的方法。如果我错了,请提供示例。

至于其余的代码和你的确切问题,我无法回答,我没有使用Progress对话框,但我们甚至不知道“bp”变量是什么,正如我所说,你应该再次提出问题,澄清一些问题。

答案 2 :(得分:1)

我通过从被调用的类(即我的landingPage.class)中删除DataLoader(即从Internet加载数据的方法)到调用者类来解决上述问题。