0

我有一个带有导航栏的应用程序,可在应用程序的不同屏幕之间切换。其中一些屏幕很简单,可以通过片段轻松显示,而其他屏幕则需要我从服务器提取数据并根据屏幕填充字段或列表视图。Android - 如果我需要下载数据,我是否应该使用活动或片段作为导航栏

我应该根据每个屏幕的需要使用片段和活动的组合吗?使用片段是很好的,因为屏幕的转换不是很明显,而开始一个新的活动是。当活动开始时异步下载信息时,是否有关于最佳实践的一些信息?我宁愿避免为这种情况使用片段,因为片段将被显示,并且在显示屏幕后将填充信息/列表视图。

+0

在我的理解中,如果在Async调用显示之后获取数据之前显示片段和活动,它们将显示相同的问题。我在我的应用程序中有类似的情况,我依靠本地sqllite DB来存储先前下载的信息。如果异步过程首先完成,那么无论如何将显示新鲜的数据,否则一旦用户再次返回到此屏幕,用户将看到数据。不知道这是否有帮助。 –

+0

@SachiinGupta它sorta帮助。问题是我的两个屏幕是搜索屏幕,所以我无法事先预先下载数据。 –

回答

-2

您有几种选择:

1)从意向使用软件包:

Intent mIntent = new Intent(this, Example.class); 
Bundle extras = mIntent.getExtras(); 
extras.putString(key, value); 

2)创建一个新的捆绑

Intent mIntent = new Intent(this, Example.class); 
Bundle mBundle = new Bundle(); 
mBundle.putString(key, value); 
mIntent.putExtras(mBundle); 

3)使用putExtra()意图的快捷方式

Intent mIntent = new Intent(this, Example.class); 
mIntent.putExtra(key, value); 
+0

对不起,我可能不清楚我在找什么。在通过屏幕底部的导航栏导航应用程序时使用活动还是可以使用Fragments,而不会在下载完成时在屏幕上出现延迟的信息? –

+0

请把一些代码,所以我可以理解 – user2423314

0

首先,使用片段是非常好的选择,当我在我的应用程序中使用NavigationDrawer下载数据并显示列表或任何类型的布局时,我也会使用片段。您也可以在片段中使用AsyncTask来下载数据并显示它们。

其次,你怎么知道在创建片段之前用户选择下载哪个菜单。这是非常好的显示加载屏幕或类似进度条下载数据并填充到片段。

相关问题