活动等待过渡,然后启动计时器。最低SDK 16

时间:2019-07-03 18:47:24

标签: android android-activity transition oncreate chronometer

我在活动过渡中使用了fade_in和fade_out。 当我浏览菜单时,一切运行正常。问题是我有6个按钮来启动一个特定的活动,其中包括一个计时器(计时器)。 此活动将启动此计时器的onCreate()方法。 因此,问题在于如何仅在过渡动画结束后才启动计时器?我的计时器正在运行,而动画仍在运行。有什么办法可以使它与min sdk 16兼容?

我正在考虑使用处理程序。

Handler handler = new Handler();
handler.postDelayed(new Runnable(){
@Override
  public void run(){
   // keep resetting the timer 
 }
 }, 1000);

还有其他想法吗?

<style name="CustomActivityAnimation" parent="@android:style/Animation.Activity">
  <item name="android:activityOpenEnterAnimation">@anim/fade_in</item>
  <item name="android:activityOpenExitAnimation">@anim/fade_out</item>
  <item name="android:activityCloseEnterAnimation">@anim/fade_in</item>
  <item name="android:activityCloseExitAnimation">@anim/fade_out</item>
</style>

1 个答案:

答案 0 :(得分:0)

    public void startRepeating(final long repeatEachSeconds,final long repeatForSeconds)
    {
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE,
                WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);

        final Handler mHandler = new Handler();
        final Runnable mRunnable = new Runnable() {
            @Override
            public void run() {
                stopWatch.resetTime();
                mHandler.postDelayed(this,repeatEachSeconds);
            }
        };

        mRunnable.run();

        Handler stopHandler = new Handler();
        stopHandler.postDelayed(new Runnable(){
            @Override
            public void run(){
                mHandler.removeCallbacks(mRunnable);
                getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);
            }
        }, repeatForSeconds);
    }```