如何减少从一项活动转换到另一项活动的时间?

时间:2014-10-16 15:35:18

标签: android user-interface

我们的团队制作了这个应用程序,向家庭成员发送带有坐标(纬度,经度)的SOS。基本上我们正在做的是访问联系人列表,在列表中添加一些以发送短信。 我们需要的是一种减少从一个活动切换到另一个活动所花费的时间的技术,从而使UI流畅。 感谢

2 个答案:

答案 0 :(得分:6)

活动之间的切换通常很顺利。如果它不顺畅可能是由于UI线程上的一些繁重的操作。人眼可以检测到超过200ms的延迟。所以你需要找出你在处理上花费更多时间的地方。

Android为同一

提供严格模式功能

来自Android文档

  

StrictMode是一个开发人员工具,可以检测您可能正在执行的操作   意外地将它们引起你​​的注意,以便你可以修复它们。

     

StrictMode最常用于捕获意外磁盘或网络   访问应用程序的主线程,UI操作在哪里   收到和动画发生。保持磁盘和网络   主线程的操作使得更顺畅,更多   响应应用。保持应用程序的主线程   响应,您还可以防止ANR对话框显示给用户。

您可以找到more details here

示例代码

public void onCreate() {
     if (DEVELOPER_MODE) {
         StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
                 .detectDiskReads()
                 .detectDiskWrites()
                 .detectNetwork()   // or .detectAll() for all detectable problems
                 .penaltyLog()
                 .build());
         StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
                 .detectLeakedSqlLiteObjects()
                 .detectLeakedClosableObjects()
                 .penaltyLog()
                 .penaltyDeath()
                 .build());
     }
     super.onCreate();
 }

除了Nadeem建议之外,您还可以删除默认活动转换。

答案 1 :(得分:2)

startActivity(new Intent(v.getContext(), newactivity.class));
overridePendingTransition(0, 0);

OR

您可以创建样式

<style name="noAnimTheme" parent="android:Theme">
   <item name="android:windowAnimationStyle">@null</item>
</style>

并将其设置为清单中活动的主题:

<activity android:name=".ui.ArticlesActivity" android:theme="@style/noAnimTheme">
</activity>

如需完整参考,请参阅此switching activities without animation