开发者

Is there any problem with this code?

It produce the stopped unexpectedly problem when I push the search button.

public class beautiful extends Activity {
    ImageView radar;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
      this.requestWindowFeature(Window.FEATURE_NO_TITLE);
      this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.beautiful);

    radar = (ImageView) findViewById(R.id.radar);
    Button search = (Button) findViewById(R.id.magnifier);
    ImageView text = (ImageV开发者_C百科iew) findViewById(R.id.text);
    MediaPlayer siren = MediaPlayer.create(this, R.raw.siren);

    search.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

            Thread counter = new Thread(new Runnable(){

                @Override
                public void run() {
                    // TODO Auto-generated method stub
                    try{
                        Thread.sleep(2000);
                        radar.setImageResource(R.drawable.radar_new_full);
                        Thread.sleep(3000);
                        radar.setImageResource(R.drawable.radar_new_50);
                        Thread.sleep(2000);
                        radar.setImageResource(R.drawable.radar_new_found);
                    } catch (InterruptedException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                    finally{

                    }
                }

            });
            counter.start();
        }
    });
}

Here are the LogCat warnings:

07-07 17:36:17.298: WARN/dalvikvm(274): threadid=15: thread exiting with uncaught exception (group=0x4001b188) 07-07 17:36:17.306: ERROR/AndroidRuntime(274): Uncaught handler: thread Thread-8 exiting due to uncaught exception 07-07 17:36:17.306: ERROR/AndroidRuntime(274): android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views. 07-07 17:36:17.306: ERROR/AndroidRuntime(274): at android.view.ViewRoot.checkThread(ViewRoot.java:2683) 07-07 17:36:17.306: ERROR/AndroidRuntime(274): at android.view.ViewRoot.requestLayout(ViewRoot.java:557) 07-07 17:36:17.306: ERROR/AndroidRuntime(274): at android.view.View.requestLayout(View.java:7918) 07-07 17:36:17.306: ERROR/AndroidRuntime(274): at android.view.View.requestLayout(View.java:7918) 07-07 17:36:17.306: ERROR/AndroidRuntime(274): at android.view.View.requestLayout(View.java:7918) 07-07 17:36:17.306: ERROR/AndroidRuntime(274): at android.view.View.requestLayout(View.java:7918) 07-07 17:36:17.306: ERROR/AndroidRuntime(274): at android.widget.ImageView.setImageResource(ImageView.java:271) 07-07 17:36:17.306: ERROR/AndroidRuntime(274): at example.beautiful$1$1.run(beautiful.java:46) 07-07 17:36:17.306: ERROR/AndroidRuntime(274): at java.lang.Thread.run(Thread.java:1096)


Read about ANR Dialog link and how to update UI from other thread Painless Threading


Try to remove @Override above the public void run().


Put some print statements here and there or breakpoints, whichever you prefer. Trace down which line is the one which causes the error, try putting try-catch statements around it to have a clear idea of what the error is - then it would be easier to solve the error (Shortly debug)

  • just an advice


You can try this:

public void onCreate(Bundle icicle) {
super.onCreate(icicle);
//do sth...
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜