android延时加载的几种做法

本文深入探讨了Java编程中多线程的创建与管理,包括使用Thread类、定时器Timer、Handler消息机制及AlarmManager进行复杂任务调度。同时介绍了在Android应用中实现界面异步加载的方法,如利用Handler.postDelayed、Dialog、FrameLayout和AsyncTask等技术,确保用户体验不受阻塞。文章还涵盖了Android应用启动时加载界面的优化策略,以及如何通过设置Activity的window特性实现加载过程中的界面美化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

①开启新线程

Java代码
  1. new Thread(new Runnable(){  
  2.     public void run(){  
  3.         Thread.sleep(XXXX);  
  4.         handler.sendMessage();----告诉主线程执行任务  
  5.      
  6. }).start  
 


② 利用定时器
Java代码
  1. TimerTask task new TimerTask(){  
  2.     public void run(){  
  3.     //execute the task   
  4.      
  5. };  
  6. Timer timer = new Timer();
    timer.schedule(task, delay);
 



③ 
Java代码
  1. new Handler().postDelayed(new Runnable(){  
  2.     public void run()  
  3.     //execute the task  
  4.      
  5.  }, delay);  
 

利用AlarmManager,特点时刻广播指定意图 能实现,一般的简单任务不这么做


5.Dialog


6.在activity a中 start一个activity B,B显示loading画面,一定时间后finish,b finish后a就会呈现出来;


7.frameLayout

loading view在上层,fill_parent,fill_parent,显示完后,View.Gone,下层的view就显示出来;


8.Asynctask


9.进入就加载不放在 onCreate 方法内;

@Override

    public void onWindowFocusChanged(boolean hasFocus) {
    
// 进入就加载不放在 onCreate 方法内

        wLoading.setBackgroundResource(R.drawable.spinner_small);

        AnimationDrawable ad=(AnimationDrawable) wLoading.getBackground();

        ad.start();    
super.onWindowFocusChanged(hasFocus);

    }

10 .关于welcom view

Android 软件运行前需要有个正在加载中的图片来进行美化我们的程序,下面是代码,

Java代码   收藏代码
  1. //无title       
  2. requestWindowFeature(Window.FEATURE_NO_TITLE);      

 

  

Java代码   收藏代码
  1. //全屏       
  2.   getWindow().setFlags(WindowManager.LayoutParams. FLAG_FULLSCREEN , WindowManager.LayoutParams. FLAG_FULLSCREEN);    

   

Java代码   收藏代码
  1. //设置布局文件,在布局文件里设置个图片  
  2. setContentView(R.layout.main);  

   

Java代码   收藏代码
  1. //建一个线程,并延时5秒后跳到另一个activity  
  2. new Handler().postDelayed(new Runnable() {  
  3.   
  4.    @Override  
  5.    public void run() {  
  6.     // TODO Auto-generated method stub  
  7.     Intent cIntent = new Intent();  
  8.     cIntent.setClass(GridviewActivity.this, Mainbox.class);  
  9.     startActivity(cIntent);  
  10.    }  
  11.   }, 5000);  

11 .标题栏添加延时加载;

[代码] [Java]代码

1 requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
2         setContentView(R.layout.main);
3         setProgressBarIndeterminateVisibility(true);


[代码] [Java]代码

1 requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
2         setContentView(R.layout.main);
3         setProgressBarIndeterminateVisibility(true);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值