overridependingtransition
时间: 2023-04-16 22:03:58 浏览: 63
overridePendingTransition 是 Android 开发中用来改变 Activity 过渡动画的方法。它接收两个参数,第一个是新 Activity 进入时的动画,第二个是旧 Activity 退出时的动画。通过使用这个方法,开发者可以自定义 Activity 切换时的动画效果。
相关问题
overridePendingTransition 可以在子线程使用吗?
`overridePendingTransition` 方法是用于设置 Activity 转场动画的方法,它必须在主线程中调用。如果在子线程中调用该方法,会抛出 `android.view.ViewRootImpl$CalledFromWrongThreadException` 异常。
为了在子线程中实现 Activity 转场动画,可以使用 `Handler` 或 `runOnUiThread` 方法来在主线程中执行该方法。以下是一个示例:
```java
new Thread(new Runnable() {
@Override
public void run() {
// 执行耗时操作
...
// 在主线程中执行 overridePendingTransition
runOnUiThread(new Runnable() {
@Override
public void run() {
overridePendingTransition(R.anim.enter_anim, R.anim.exit_anim);
}
});
}
}).start();
```
在上述示例中,我们在子线程中执行耗时操作,然后通过 `runOnUiThread` 方法在主线程中执行 `overridePendingTransition` 方法,以实现 Activity 转场动画。
需要注意的是,虽然我们可以在子线程中执行耗时操作,但是更新 UI 必须在主线程中进行。因此,我们建议在子线程中执行耗时操作,并在主线程中更新 UI 和执行 Activity 转场动画。
intent.setAction(getIntent().getAction()); overridePendingTransition(0, 0); finish();这三句有什么用
这三句代码的作用如下:
1. `intent.setAction(getIntent().getAction());`:获取当前 `Activity` 的 `Intent` 对象,并将其 action 设置为当前 `Intent` 的 action。这样做是为了保持当前 `Activity` 的 `Intent` 不变,以便在下一个 `Activity` 返回时能够正确处理 `Intent` 数据。
2. `overridePendingTransition(0, 0);`:设置当前 `Activity` 的进入和退出动画为无动画效果。这样做是为了避免在 `Activity` 切换时出现闪屏或动画卡顿等问题。
3. `finish();`:结束当前 `Activity`。