2017-12-14 2 views
0

例えば、私は今、(AndroidのOに基づく)は、図1のようなプログラムを持っている:Androidがコンパイルして携帯電話で実行するシステムのソースバージョンはどのバージョンですか?

enter image description here

そしてIは通知機能を記述することを試み、そしてNotificationChannelオブジェクトを発見し、それを書き込んだ後、同様に図2

enter image description here

私はもしを削除したときに、私はこのクラスを見つけることができなかったので、私は、AndroidのO以下の携帯電話上のミスを犯すだろう。
Android Oの通知では、通知が消えるまでの遅延を設定するsetTimeoutAfter(2000)メソッドも追加されました。このメソッドはAndroid Oの前には存在しませんでしたが、このメソッドは制限がなければ追加しませんでした。Android Oの下の携帯電話で実行しているときにエラーを報告しませんでした。なぜNotificationChannelが間違っているのですか?setTimeoutAfterは間違いを起こしません。

または、Androidコンパイラは、私は26のソースコードのバージョンで決定されたと思うし、携帯電話の各低バージョンに実行すると、携帯電話もそれぞれのバージョンでなければなりません、なぜ私はsetTimeoutこのメソッドは、例外ではなく、実行できます(効果はありません)。

+0

そのコードを囲むifステートメントは、そのコードが実行されないようにしています...どういう例外がありますか? –

+0

コードの画像を投稿しないでください。彼らはここで役に立たない。これを避けるべき多くの理由のリストについては、[このメタ投稿](https://meta.stackoverflow.com/a/285557/62576)を参照してください。コードはテキストで、そのフォームに簡単にコピーして質問に貼り付けることができます。イメージは、問題を示す他の方法がない場合にのみ使用してください。 –

+0

あなたの 'setTimeoutAfter'は[NotificationCompat.Builder.setTimeoutAfter()](https://developer.android.com/reference/android/support/v4/app/NotificationCompat.Builder.html#setTimeoutAfter(long))です。 – Toris

答えて

0

compilesdkversionは、コンパイルに使用されるため、ソースコード内の任意のクラス/関数の最終行です。

minSdkVersionは、デバイスにインストールできるボトムラインアプリです。

targetSdkVersionは、デバイスの互換動作を決定するためのものです。

Build.*は、基本的にデバイスの実行時の値です。

名前に「Compat」が含まれるクラスは、古いプラットフォームでも使用できるように設計されています。 NotificationCompat.Builder.setTimeoutAfter()のいずれかです。


関連記事:質問What is the difference between compileSdkVersion and targetSdkVersion?

  • compilesdkversion

    compileSdkVersionプロパティは、コンパイルのターゲットを指定するから

    Guide - App manifest - uses-sdk

    • minSdkVersion

      から

    アプリケーションの実行に必要な最小APIレベルを指定する整数。 Androidシステムは、システムのAPIレベルがこの属性で指定された値よりも低い場合、ユーザーがアプリケーションをインストールできないようにします。

  • targetSdkVersion

  • この属性を使用すると、ターゲットバージョンとターゲットバージョンと、アプリケーションの将来の互換性を維持するために、互換性の振る舞いを有効にしないでくださいシステムに対してテストしたシステムに通知します。アプリケーションは古いバージョン(minSdkVersionまで)で実行できます。

Buildクラス参照

  • からシステムプロパティから抽出された現在のビルドに関する

    情報を、ビルドします。


NotificationCompat.Builderための関連質問:

How to create a notification with NotificationCompat.Builder?

NB:NotificationCompat.Builderはサポート-V4ライブラリのクラスです。
サポート-v4ライブラリは、名前が示すように、> API4のデバイス用です。 (現在の文書では、API9のために書かれています)

関連する問題