Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android中始终使用片段_Android_Android Fragments_Fragment - Fatal编程技术网

在Android中始终使用片段

在Android中始终使用片段,android,android-fragments,fragment,Android,Android Fragments,Fragment,我刚刚开始了解Android中的Fragments 当您创建一个新的空白项目时,默认情况下还包括一个片段,尽管它并没有真正被使用。我的印象是,谷歌希望你一直使用Fragments,无论应用程序多么简单。这是一个真实的评估,还是你能想出不使用Fragments的理由 我还发现奇怪的是,文档表明Fragments也可以用于与UI无关的东西。你能给我举一个应用程序的例子,它会使用片段,但不提供任何用户界面吗?谷歌在推出Honeycom(3.0)时引入了片段。 正如你所知,蜂巢是第一个支持平板电脑开箱即

我刚刚开始了解Android中的
Fragment
s

当您创建一个新的空白项目时,默认情况下还包括一个
片段
,尽管它并没有真正被使用。我的印象是,谷歌希望你一直使用
Fragment
s,无论应用程序多么简单。这是一个真实的评估,还是你能想出不使用
Fragment
s的理由


我还发现奇怪的是,文档表明
Fragment
s也可以用于与UI无关的东西。你能给我举一个应用程序的例子,它会使用
片段,但不提供任何用户界面吗?

谷歌在推出Honeycom(3.0)时引入了片段。 正如你所知,蜂巢是第一个支持平板电脑开箱即用的Android版本,他们使用片段来更好地安排屏幕上的UI布局

使用片段可以比使用活动更好地利用屏幕属性。一个活动可以运行并“命令”共享同一屏幕不动产的多个不同片段,这些片段可以动态交换

是的,谷歌希望你使用片段,这是编写大多数可伸缩应用程序的正确方法

关于第二个问题:

片段可以在配置更改中保持不变,例如屏幕方向的更改。当您更改屏幕方向时,活动将被终止并重新创建,它们可能执行的任何工作都必须重新创建

如果正确使用片段,那么当您更改屏幕方向时,活动可能会被终止,但片段可以保持其状态,然后将其自身重新连接到新创建的活动,并在其左侧继续

基本上,如果您有一个从某个活动运行的AsyncTask,并且该活动由于方向更改(例如)而被终止,那么您的AsyncTask现在是无用的。但是,如果您通过一个片段保持异步任务,那么它将继续,因为该片段没有被销毁


希望这能有所帮助。这一切都取决于你在开发什么以及如何开发。我不认为每个应用程序都需要有片段,但在许多情况下,它们更容易使用,因为它们可以动态交换,由单个活动管理,等等。 例如,假设您的应用程序正在运行一些后台任务,并且您希望它在用户仍然可以在应用程序周围“自由漫游”的情况下继续运行。在活动中运行该任务并将UI分成片段将是一种非常简单的方法。活动还可以在任何时候管理消息和数据,并将其发送给“子”片段,包括片段之间的通信


至于完全没有UI的片段,我不记得遇到过类似的情况,但是您肯定可以在片段中实现与UI没有直接关系的后台任务和其他方法。同样,这完全取决于你在开发什么以及如何开发。这里真的没有“对或错”…

看看这个:还有这个:第一个问题可能是意见问题。在第二种情况下,您可以使用片段“只是为了保留数据”。Android的“高效位图”示例就是这样做的@Francescoverheye刚刚阅读了这个链接。考虑到服务和asyntask可以完成同样的事情,这个论点太弱,无法证明在后台任务中使用片段是正确的。@AndroidDev没错,我只将片段用于UI内容,其他什么都不用。似乎就是这样。然而,我问题的第二部分是关于将其用于非UI内容。在阅读了其他人发布的SO链接后,我真的看不到任何合理的理由。