Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.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 没有UI编写可维护代码的活动_Android_Android Studio - Fatal编程技术网

Android 没有UI编写可维护代码的活动

Android 没有UI编写可维护代码的活动,android,android-studio,Android,Android Studio,没有UI的活动有什么用?我有一个MainActivity,我觉得代码太长了,我想为每个任务创建一个没有UI的单独活动,并在我的主活动中调用它(或者使用一个无头片段?),以保持代码的可维护性。这是一个糟糕的方法吗?如何在一个活动中管理相对较长的代码 那是个坏主意。如果活动太大/太复杂,将其分解为多个类是有意义的。如果这些片段有一个UI,那基本上就是一个片段。如果他们没有,他们应该是另一类人。但是没有理由让它们成为活动——它们只是课程 在很少的地方进行无头活动是有意义的。几乎所有这些地方都是Andr

没有UI的活动有什么用?我有一个MainActivity,我觉得代码太长了,我想为每个任务创建一个没有UI的单独活动,并在我的主活动中调用它(或者使用一个无头片段?),以保持代码的可维护性。这是一个糟糕的方法吗?如何在一个活动中管理相对较长的代码

那是个坏主意。如果活动太大/太复杂,将其分解为多个类是有意义的。如果这些片段有一个UI,那基本上就是一个片段。如果他们没有,他们应该是另一类人。但是没有理由让它们成为活动——它们只是课程


在很少的地方进行无头活动是有意义的。几乎所有这些地方都是Android要求您启动上下文的地方,但您还不确定要启动哪一个上下文(例如,一个无头活动,其url路由过于复杂,无法放入清单中)。

您的问题有很多问题

首先。。。没有UI的活动,则不需要是活动

其次,您必须知道什么是类,以及我们为什么使用类


第三,当你有很长的代码时,也许你的逻辑不好,你可以在其他类中分离代码,例如:适配器、助手、任务等等。。。。同样的活动和代码必须让你知道如何正确地分离,如果你知道这些概念,请,也许如果你发布代码,我们可以为你提供更多帮助。

“你如何在一个活动中管理相对较长的代码?”--一般来说,将其中的部分转移到单独的非
活动
类中。关于Android应用的GUI架构(MVC、MVP、MVVM等)已经有很多文章了。@commonware你能给我指出一个好的来源吗?我熟悉内部/匿名/嵌套类,以及带有setter/getter的独立类。但是我可以使用更多关于如何使用独立类进行更复杂操作的信息。就像我的一项任务一样,我需要创建MediaRecorder的意图和MediaPlayer的对象,然后对音频文件进行一些轻量级比较。在同一个活动中,有几个类似的任务在长度上与这个任务相似。“对音频文件进行一些轻量级比较”——这似乎与活动没有什么特别的关系。因此,将其移到某个单独的Java类中,可能只是继承自
对象
(即,类声明中没有
扩展
关键字)。活动可能会创建该对象的实例并对其调用方法,但代码本身将驻留在其他地方。总之,你对“复杂操作”的处理方法和对不太复杂的操作的处理方法是一样的。@commonware感谢你花时间澄清这一点。老实说,这是最有用的答案。@commonware我可以在单独的类中包含用户权限方法吗?还是这是一种糟糕的做法?