android中一些术语:XX的上下文,这个上下文怎么理解?
PHP中文网
PHP中文网 2017-04-17 14:39:20
0
2
686

public CompassView(Context context, AttributeSet attrs) {

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

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

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


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

申请关闭

PHP中文网
PHP中文网

认证高级PHP讲师

全員に返信(2)
Ty80

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
阿神

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

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート