バージョン1.6でバージョン1.6でバージョン1.6でバージョン1.6で発生するoverridePendingTransitionの問題の解決について


overridePendingTransitionという関数はAPI 5の後に追加されたので、必ずこのように書きたいと思います.
if(android.os.Build.VERSION.SDK_INT > android.os.Build.VERSION_CODES.DONUT) {
  overridePendingTransition(0,0);
}

当然だと思いましたが、出张がないと思って1.6の机械で走り出したら...VerifyError....
これはなぜですか.ifでの文は実行されないのにね~
間違いだ!overridePendingTransitionはクラスのロード時に呼び出されるのでifとは関係ありません~ifに書かなくても実行されるのでエラーが発生します
どのように解決しますか?
OKロード時に運転させないといいですね~
内部クラスを1つ置く~内部クラスで呼び出す~
if(android.os.Build.VERSION.SDK_INT > android.os.Build.VERSION_CODES.DONUT) {
    newObject() {
 
      publicvoid overridePendingTransition(Activity c, inti, intj) {
          c.overridePendingTransition(i,j);
      }
    }.overridePendingTransition(this,0,0);
}

これによりifが実行されるまで内部クラスがJVMにロードされないので、中のメソッドは呼び出されません~
OK解決~