Android开发中怎么实现活动切换

  介绍

今天就跟大家聊聊有关Android开发中怎么实现活动切换,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

具体如下:

这里要实现的目的是:

有3个活动:A, B, C,从一个中可以进入B, B中可以进入C,并且B和C之间可能需要多次相互切换,因此不能使用普通的startActivity-finish方式,因为重新创建活动比较耗时。当这个活动内容比较多时,重复创建很大的影响了流畅性。(即实现类似于QQ上选择照片页面——选择相册页面,这两个页面可能多次相互切换,所以不能多次创建)

1。从B进入C或者从C进入B时,均使用startActivity的方式(不使用完),并为意图添加参数FLAG_ACTIVITY_REORDER_TO_FRONT,即:

目的意图=new意图(B。这一点,C.class);
  intent.addFlags (Intent.FLAG_ACTIVITY__TO_FRONT);
  startActivity(意图);

在这种情况下,如果C之前没有创建则会被创建,如果已经创建了,则只会把C从Aciticy栈中搬到B的上面来,而不再重新创建。

2。在C中重写onNewIntent方法,即:

@Override   保护空白>目的意图=new意图(这个,A.class);   intent.addFlags (Intent.FLAG_ACTIVITY_CLEAR_TOP);   startActivity(意图);

5。同样,在中重写onNewIntent方法,处理B或C返回时传递的信息,并且,在清单中为一个添加属性

android: launchMode=皊ingleTop"

6。最后一个问题,由于从B到C和从C到B都使用的是startActivity的方式,因此活动之间切换的动画都是开启新活动的样例式。如,无论从B到C或者从C到B,新页面都是从右侧进入,给人的感觉似乎一直在创建新活动,很不友好。

解决这个问题的方法是自定义活动之间切换的动画,目的是给用户一种感觉:从C到B的时候是新开活动(B从右侧进入),而从B到C的时候是“返回”(C从左侧进入)。只需一行代码:

 overridePendingTransition (,), 

:进入的活动的动画;:退出的活动的动画。

这里需要注意:

(1)对于普通的startActivity-finish方式,如果需要自定义活动之间切换的动画,只需将上述代码写在startActivity或完成之后即可:
(2)但是,本文中由于使用了FLAG_ACTIVITY_REORDER_TO_FRONT的方式,上述动画将只在第一次创建页面B或C的时候有效。解决方法,是将上述代码写在onNewIntent中,例如从B到C,则在C中onNewIntent中写上这行代码,指定C进入的样式和B退出的样式。

7。动画资源:

(1)活动从左侧退出:

& lt;及# 63;xml version=?.0”;编码=皍tf-8", # 63;比;   & lt;翻译xmlns: android=癶ttp://schemas.android.com/apk/res/android"   android:持续时间=?50”;   android: fromXDelta=?”;   android: toXDelta=皃" -100%;   android: fromYDelta=?”;   android: toYDelta=?”;比;   & lt;/translate>

(2)活动从右侧退出:

& lt;及# 63;xml version=?.0”;编码=皍tf-8", # 63;比;   & lt;翻译xmlns: android=癶ttp://schemas.android.com/apk/res/android"   android:持续时间=?50”;   android: fromXDelta=?”;   android: fromYDelta=?”;   android: toXDelta=皃" 100%;   android: toYDelta=?”;比;   & lt;/translate>

(3)活动从左侧进入:

& lt;及# 63;xml version=?.0”;编码=皍tf-8", # 63;比;   & lt;翻译xmlns: android=癶ttp://schemas.android.com/apk/res/android"   android:持续时间=?50”;   android: fromXDelta=皃" -100%;   android: fromYDelta=?”;   android: toXDelta=?”;   android: toYDelta=?”;比;   & lt;/translate>

(4)活动从右侧进入:

& lt;及# 63;xml version=?.0”;编码=皍tf-8", # 63;比;   & lt;翻译xmlns: android=癶ttp://schemas.android.com/apk/res/android"   android:持续时间=?50”;   android: fromXDelta=皃" 100%;   android: toXDelta=?”;   android: fromYDelta=?”;   android: toYDelta=?”;比;   & lt;/translate>

看完上述内容,你们对Android开发中怎么实现活动切换有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

Android开发中怎么实现活动切换