2012-04-09 102 views
1

我有一个从网上下载内容的android活动。该活动有进度条和一些关于下载的指示。用户可以按回去并进入主要活动应用程序。我怎样才能让按钮,将显示下载活动?显示在后台运行的活动

代码:

Intent i = new Intent("com.myapp.DOWNLOAD"); 
startActivity(i); 

再次开始活动,这是不是我想要的。

回答

2

在您的AndroidManifest.xml中,修改您的下载活动以包含launchMode="singleInstance"值。例如:

<activity 
    android:name=".DownloadActivity" 
    android:launchMode="singleInstance" /> 

这将仅创建DownloadActivity的一个实例。任何后续显示此活动的请求都会拉同一个实例。

0
Intent intent = new Intent(Class1.this, Class2.class); 
startActivity(intent); 
+0

此代码将从头开始Class2.class,Class2正在运行,我希望只显示它。 – DanM 2012-04-09 08:04:57

0

设计明智,下载可以通过运行单独线程的服务来完成。当对话消失时,服务不会终止。 AsyncTask使用示例有一些代码。

+0

下载活动确实使用AsyncTask线程。该服务没有终止,我可以在LogCut中看到它继续工作,但我的问题是退出后再次显示该类。 – DanM 2012-04-09 08:01:27

+0

如果您想保留设计,您需要在调用活动中维护对AsyncTask的引用。将此对象传递给启动它的活动。活动可以通过AsyncTask上的调用方法来访问进度数据。 – 2012-04-09 08:14:33