美文网首页
Android中关于handler和定时器配合使用

Android中关于handler和定时器配合使用

作者: 予你挚终_cc3a | 来源:发表于2017-12-17 20:44 被阅读0次

    什么是handler?


    handler 其实就是当你要在程序中做一些耗时的事情或者要刷新什么的时候你不可以在主线程的来做这件事这时候你就要来开辟一个子线程,这时候子线程要执行什么就在handler中来完成

    Handler handler = new Handler(){
    @Override
    public void handleMessage(Message msg) {
    super.handleMessage(msg);
    }
    };

    这里就new出来了一个handler特别简单,下面就配合定时器做一个引导跳转。
    -新建两个Activity 一个是引导界面GuideActivity.class 和 主界面MainActivity.class

    GuideActivity.class

    public class GuideActivity extends BaceActivity {
        
        Handler handler = new Handler(){
            @Override
            public void handleMessage(Message msg) {
                super.handleMessage(msg);
                switch (msg.what){
                    case 0:
                        Intent intent = new Intent(GuideActivity.this, MainActivity.class);
                        startActivity(intent);
                        GuideActivity.this.finish();
                        break;
                }
            }
        };
        
        Timer timer = new Timer();
        TimerTask task = new TimerTask() {
            @Override
            public void run() {
                Message msg = new Message();
                msg.what = 0;
                handler.sendMessage(msg);
            }
        };
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_guide);
            
            timer.schedule(task,3000);
        }
    
        @Override
        protected void onDestroy() {
            super.onDestroy();
            timer.cancel();
        }
    }
    

    上面代码就做了一个引导页的三秒定时跳转,当然了如果想要让哪个Activity第一个显示那么就要改AndroidManifest文件将下面这段代码复制到你想第一个显示的Activity里

    <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    

    例如我这里想要第一个显示引导页面GuideActivity.class那么我就可以这样

    <activity android:name=".activity.GuideActivity">
    
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
    
    </activity>
    

    相关文章

      网友评论

          本文标题:Android中关于handler和定时器配合使用

          本文链接:https://www.haomeiwen.com/subject/daduwxtx.html