• Android 四大组件学习之Server一


    上次学习了Android四大组件Activity之后,我们深刻理解了Activity。这次我们学习四大组件Service。

    Service与Activity的级别是一样的,都是Android系统不可缺少的,也是很重要的。可是还是有差别的。Activity是与用户交互的重要组件。所以能够说明Activity是有界面的,存在于前台。而Service确实没有 界面的,一直存在与后台。默默无闻的奉献者。

    和学习Activity一样。本节学习怎样创建一个Service,以及怎样配置Service

    第一步创建一个MyService而且继承Service类,(是不是和我们的activity非常相似)

    创建后例如以下图所看到的:

    创建后的服务也须要到配置文件里配置,这是不是和Activity也非常相似

     <service android:name="com.ui.service.MyService"></service>
    这样一个Service算是创建成功了,那怎样去启动一个Service呢? 由于Service是没有界面的,是执行在后台的。我们能够用打印观察。启动service须要借助与Activity

    我们创建一个MyActivity

    public class MyActivity extends Activity {
    
    	private Button btn_start;
    	
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		// TODO Auto-generated method stub
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_myservice);
    		
    		btn_start = (Button)findViewById(R.id.button1);
    		btn_start.setOnClickListener(new OnClickListener() {
    			
    			@Override
    			public void onClick(View arg0) {
    				// TODO Auto-generated method stub
    				Intent intent = new Intent(MyActivity.this, MyService.class);
    				startService(intent);
    			}
    		});
    	}
    }
    布局文件就一个Button用来启动Service

    同一时候我为MyService中加入了几个方法:

    public class MyService extends Service {
    
    	@Override//必须实现的方法
    	public IBinder onBind(Intent arg0) {
    		// TODO Auto-generated method stub
    		return null;
    	}
    	
    	@Override//被创建时的调用
    	public void onCreate() {
    		// TODO Auto-generated method stub
    		super.onCreate();
    		Log.i("MyService", "onCreate------------");
    	}
    	
    	@Override
    	@Deprecated//OnStart方法如今被OnStartCommd已经代替,事实上在OnStartCommand也调用了OnStart
    	public void onStart(Intent intent, int startId) {
    		// TODO Auto-generated method stub
    		super.onStart(intent, startId);
    		Log.i("MyService", "onStart------------");
    	}
    	
    	
    	@Override//启动时会调用
    	public int onStartCommand(Intent intent, int flags, int startId) {
    		// TODO Auto-generated method stub
    		Log.i("MyService", "onStartCommand------------");
    		return super.onStartCommand(intent, flags, startId);
    	}
    }
    


    当我点击Buttonbutton是,就会启动Service


    ok, 关于Service的创建本节就说道这里



  • 相关阅读:
    Module build failed: Error: Cannot find module 'node-sass'报错问题
    vue element upload
    vue-element-table 分页选中
    两种倒计时
    【LOJ #6076】「2017 山东一轮集训 Day6」三元组(莫比乌斯反演 / 三元环计数)
    【LOJ #6075】「2017 山东一轮集训 Day6」重建(DP)
    【2020省选模拟】题解
    【LOJ #6074】「2017 山东一轮集训 Day6」子序列(矩阵乘法)
    【LOJ #6073】「2017 山东一轮集训 Day5」距离(主席树 / 树链剖分)
    【LOJ #6072】 「2017 山东一轮集训 Day5」苹果树(容斥 / 搜索 / 矩阵树定理)
  • 原文地址:https://www.cnblogs.com/brucemengbm/p/6774772.html
Copyright © 2020-2023  润新知