我正在使用我的某个活动中的代码来启动另一个
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吗?
答案 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加载数据的方法)到调用者类来解决上述问题。