Android 活动之间的黑屏切换

Android 活动之间的黑屏切换,android,progressdialog,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

我正在使用我的一项活动中的以下代码来启动另一项活动

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();
Intent-viewIntent=newintent(getApplicationContext(),landingPage.class);
Bundle b=新Bundle();
b、 putString(“ApplicationName”,一个_Bean.getApplicationName());
if(landingPage.getInstanceCount()<1)
bp.landingPage_ProgressDialog=ProgressDialog.show(ViewAllApp.this,“请稍候…”,“检索数据…”,true,false);
viewIntent.PUTETRAS(b);
viewIntent.addFlags(Intent.FLAG\u ACTIVITY\u CLEAR\u TOP);
startActivityForResult(viewIntent,10);
线程背景=新线程(newrunnable(){
公开募捐{
Progresshandler.sendMessage(handler.ActainMessage());//完成progressDialog
}});
background.start();
但在startactivity之后,它会显示一个黑屏&然后显示新的活动。
我可以在显示黑屏时显示progressdialog吗?

您的代码有点混乱和不清楚。请指定目标。总之,我看到了一些事情:

1-不要使用getApplicationContext(),活动本身就是一个上下文,因此最好使用:

new Intent (this, landingPage.class);
2-您不需要创建捆绑包来将字符串添加到意图中

viewIntent.addExtra("ApplicationName", a_Bean.getApplicationName ());
无论如何,在你的活动中传递应用程序的名称对我来说似乎是一个可怕的想法。如果在整个活动中确实需要应用程序的名称,请创建一个应用程序类作为应用程序的中心点。我真的建议您重新审视您的体系结构

3-您确定要从活动登录页的父级访问活动登录页吗?我假设landingPage是在某处实例化的。我发现这是一个可怕的方法。如果我错了,请举例说明


至于代码的其余部分和您的确切问题,我无法回答,我没有使用进度对话框,但我们甚至不知道“bp”变量是什么,正如我所说的,您应该尝试再次询问您的问题,澄清一些要点。

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

这对我很有用:

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);

在这种情况下,不显示ProgressDialog,就不会有黑色的滑动屏幕效果。@奔腾10我需要显示ProgressDialog,因为我的应用程序根据所选的“ApplicationName”从Internet下载数据变量。我确实删除了progressDialog,但没有效果。我在其他测试应用程序中也看到了相同的行为。在启动应用程序之间设置进度是个坏主意。您需要在进行下载的对话框中实现进度对话框,但在切换活动之间。同样,如果你有一个简单的数据下载接口,你应该考虑使用一个服务而不是一个活动。不是存储在bundle 3中,而是改为startActivity&bp是一个用于处理和其他函数的类的对象,但我仍然没有结果。您总是使用代码段来编写普通代码。代码片段只能用于HTML或javascript或其他可以在浏览器中运行的代码。不能在浏览器中运行Java。将来使用普通代码块。。。这次我会为你编辑你的答案,修改格式等,但以后请不要再这样做了。这不是我第一次告诉你这件事。。。