首先,我必须承认我是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();”为了阻止线程 - 它听到了它。
答案 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);
}
}
}