検索

ホームページ  >  に質問  >  本文

android中一些术语:XX的上下文,这个上下文怎么理解?

public CompassView(Context context, AttributeSet attrs) {

    super(context, attrs);
    init();
}

例如我这一个,默认就是调用这个构造方法。 我自己写的一个view的构造方法。context表示activity的上下文,attrs表示你在xml中配置的属性,例如宽,高等

context表示activity的上下文,,,这个上下文是什么意思?用些作文的来理解不通啊...求大牛形象理解一下


与已有问题重复:如何理解android中的上下文对象(Context对象)?

申请关闭

PHP中文网PHP中文网2828日前703

全員に返信(2)返信します

  • PHP中文网

    PHP中文网2017-04-17 14:41:20

    Context は、グローバル情報にアクセスするために使用されます。たとえば、各 UI コンポーネントのコンストラクターは Context を渡す必要があります。
    TextView を例として挙げます。

    TextView textView = new TextView(this);
    textview.setText(R.string.balabala);
    

    ここでインスタンス化するとき、this が渡され、この値は Context です。
    ここでは、strings.xml ファイルで事前定義された文字列を示します。setText(int resid) 関数のソース コードは次のとおりです。

     public Final void setText(int resid) {
            setText(getContext().getResources().getText(resid));
        }

    getContext() 関数は、グローバル情報リソースを取得し、必要なリソースを ID でフィルタリングするために使用されることに注意してください。ここで getContext() によって取得されるコンテキストは、TextView をインスタンス化するときに渡した Context です。

    <時間>

    つまり、コンテキストは、オブジェクトがグローバル情報にアクセスするのを支援するために使用されます。
    コンテキストを使用するときは、コンテキストが使用後に適切なタイミングで渡され、解放されることに特に注意してください。これは、コンテキストが時間内に解放されなかった場合、コンテキストにはアクティビティを取得するための参照があるためです。アクティビティのライフサイクルが終了すると、メモリ リークが発生しやすくなります。

    返事
    0
  • 阿神

    阿神2017-04-17 14:41:20

    現在の実行環境。
    関数 a(){
    ...
    ...
    ...
    }
    関数 a のコンテキストは、関数内のすべてのコードです。または、a の環境として理解されます。

    返事
    0
  • キャンセル返事