临时加载屏幕

时间:2014-01-22 16:46:26

标签: android multithreading android-intent

首先,我必须承认我是Android编程的初学者,可能无法正确理解。

其次,问题: 在我的应用程序中,我创建了一个加载屏幕,并且我已经尝试限制此屏幕的时间,以便在时间结束时 - 它通过意图移动到另一个屏幕。

代码:

public class MainActivity extends Activity implements OnClickListener {

ImageView iv;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.loading_screen);
    iv=(ImageView)findViewById(R.id.imgBtn1);
    iv.setBackgroundResource(R.anim.loading_i_animation);
    iv.setOnClickListener(this);

    }


public void onClick(final View iv) {
    // TODO Auto-generated method stub

    Thread t1=new Thread(new Runnable() {

        @Override
        public void run() {

    AnimationDrawable anim=(AnimationDrawable) iv.getBackground();
    anim.start();

        }
    });

    t1.start();
    try {
        t1.sleep(2000);
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    t1.stop();

    //The moving to the other screen

    Intent st=new Intent(MainActivity.this,Welcome.class);
    startActivity(st);


} }

意图本身的工作,以及loading_screen的动画。但是,当我写“t1.stop();”为了阻止线程 - 它听到了它。

1 个答案:

答案 0 :(得分:0)

我明白。我忘了使用finish()并继续我可以选择“终于”。

正确的代码:

public class MainActivity extends Activity implements OnClickListener {

ImageView iv;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.loading_screen);
    iv=(ImageView)findViewById(R.id.imgBtn1);
    iv.setBackgroundResource(R.anim.loading_i_animation);
    iv.setOnClickListener(this);

    }

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

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

    Thread t1=new Thread(new Runnable() {

        @Override
        public void run() {

            AnimationDrawable anim=(AnimationDrawable) iv.getBackground();
            anim.start();

        }
    });
    t1.start();
    try {
        t1.sleep(1000);
        finish();
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    finally {
        Intent st=new Intent(MainActivity.this,Welcome.class);
        startActivity(st);
    }




}   
}