2017-10-29 5 views
0

は、私は次のコード破壊されたビュー上で関数を呼び出すと、それは爆発しますか?

class SomeActivity extends AppCompatActivity 
{ 
    onCreate() 
    { 
     SomeView view = (SomeView) findViewById(R.id.some_view); 

     // [code here destroys the inflated layout, including SomeView] 

     // Does the android specification guarantee that the following 
     // line of code is ALWAYS safe to execute? 
     view.setVisibility(View.INVISIBLE); 
    } 
} 

それだけでは何も変わりません(例えば、非存在であるものを修正する)か、それが万人の例外を除いて爆破されますを持っているとしましょう。私がこの質問をしているのはエミュレータでテストするだけではなく、アンドロイドの仕様によって "ベストプラクティス"または "保証された"ものをやっていることを確認したいということです。

+0

例外もなく心配もありません! – Xenolion

+0

@ Xenolionあなたが答えを出して情報源を引用すれば、私はあなたを受け入れることができます – AlanSTACK

+0

私はどこで引用するのか知りません。しかし、私はそれをちょうど経験に使った! – Xenolion

答えて

-1

ビューを破棄すると、そのビューで操作しようとするとNPEがスローされます。それはちょうどあなたが何らかのオブジェクトを無効にして、そのオブジェクトに対して何らかの操作をしようとするのと同じです。

+0

それで 'view.getParent()。removeAllViews()'はどんなエラーも投げられないのですか?それは 'removed'のためですか!=' destroyed'ですか?もしそうなら、ビューはいつ「破壊」されますか?ガベージコレクタによって? – AlanSTACK

関連する問題