• service+activity


    <span style="font-size:18px;">package com.gufengxiachen.broadcast;
    
    import android.app.Service;
    import android.content.Intent;
    import android.os.IBinder;
    
    
    
    public class LocalService extends Service{
    	private int progress;
    	@Override
    	public IBinder onBind(Intent intent) {
    		// TODO Auto-generated method stub
    		return null;
    	}
    	
    	@Override
    	public void onStart(Intent intent, int startId) {
    		// TODO Auto-generated method stub
    		super.onStart(intent, startId);
    		//得到Activity中传递过来的数据
    		progress = intent.getIntExtra("progress", 0);
    		//创建一个线程,每隔一秒向Activity发送一个广播,并将progress的新值发送出去
    		new Thread(){
    			public void run() {
    				while(progress<100){
    					progress = progress+1;
    					Intent intent = new Intent();
    					intent.putExtra("serviceProgress", progress);
    					//设置发送广播的类型,可以随便写一个
    					intent.setAction("com.gufengxiachen.service");
    					sendBroadcast(intent);
    					try {
    						sleep(1000);
    					} catch (Exception e) {
    						e.printStackTrace();
    					}
    				}
    			}
    		}.start();
    	}
    	
    
    }
    </span>
    

      

    <span style="font-size:18px;">package com.gufengxiachen.broadcast;
    
    import android.app.Activity;
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.content.IntentFilter;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.ProgressBar;
    import android.widget.SeekBar;
    import android.widget.SeekBar.OnSeekBarChangeListener;
    
    public class BroadcastReceiverTestActivity extends Activity {
        
    	private ProgressBar progressBar;
    	private Button button;
    	private int progress = 0;
    	private MyBroadcastReceiver myBroadcastReceiver = new MyBroadcastReceiver();
    	
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            
            progressBar = (ProgressBar)findViewById(R.id.progressBar);
            button = (Button)findViewById(R.id.button);
            progressBar.setMax(100);
            button.setOnClickListener(new OnClickListener() {
    			
    			@Override
    			public void onClick(View v) {
    				// TODO Auto-generated method stub
    				//在这里启动服务
    				Intent intent  = new Intent();
    		    	intent.putExtra("progress", progress);
    		    	intent.setClass(BroadcastReceiverTestActivity.this, LocalService.class);
    		    	startService(intent);
    			}
    		});
           
        }
        
        @Override
        protected void onResume() {
        	// TODO Auto-generated method stub
        	super.onResume();
        	//注册广播接收器
        	IntentFilter filter = new IntentFilter();
        	//设置接收广播的类型,这里要和Service里设置的类型匹配,还可以在AndroidManifest.xml文件中注册
        	filter.addAction("com.gufengxiachen.service");
        	this.registerReceiver(myBroadcastReceiver, filter);
    
        }
        
        @Override
        protected void onStop() {
        	// TODO Auto-generated method stub
        	super.onStop();
        	this.unregisterReceiver(myBroadcastReceiver);
        }
        //定义一个广播接收器
        class MyBroadcastReceiver extends BroadcastReceiver{
        	@Override
        	public void onReceive(Context context, Intent intent) {
        		// TODO Auto-generated method stub
        		//接收到Service发送的广播信息,得到数据,更新UI
        		progress = intent.getIntExtra("serviceProgress", 0);
        		progressBar.setProgress(progress);
        	}
        }
    }</span>
    http://blog.csdn.net/wustrive_2008/article/details/7188062
  • 相关阅读:
    Windows 7 Update Settings Disabled (Important Updates Grayed Out)
    vSphere 扩展硬盘空间
    Windows Updateエラー 80072EE2
    how-to-view-source-of-chrome-extension
    ffmpeg 加 logo
    书法字帖 PDF转化为可打印PDF
    远程桌面 函数不受支持
    ico 图标 生成 工具 网站
    WmiPrvSe.exe 的 cpu 占用
    v891 安卓平板的root
  • 原文地址:https://www.cnblogs.com/leiqun123/p/3339969.html
Copyright © 2020-2023  润新知