zoukankan      html  css  js  c++  java
  • 【android】在Service的onStartCommand()中调用stopself()应该注意的问题

    在Service的onStartCommand()中调用stopself()后并不会立马destroy掉service,而是等onStartCommand()运行完才destroy。


    public class TestService extends Service {
    
    	private String TAG = "TestService";
    	@Override
    	public void onCreate() {
    		// TODO Auto-generated method stub
    		Log.i(TAG, "onCreate");
    		super.onCreate();
    	}
    
    	@Override
    	public int onStartCommand(Intent intent, int flags, int startId) {
    		// TODO Auto-generated method stub
    		Log.i(TAG, "onStartCommand");
    		stopSelf();
    		Log.i(TAG, "我还在运行!

    "); return super.onStartCommand(intent, flags, startId); } @Override public void onDestroy() { // TODO Auto-generated method stub Log.i(TAG, "onDestroy"); super.onDestroy(); } @Override public IBinder onBind(Intent intent) { // TODO Auto-generated method stub return null; } }


    MainActivity用一个button来启动service:

    	@Override
    	public void onClick(View v) {
    		// TODO Auto-generated method stub
    		switch (v.getId()) {
    		case R.id.testBtn:
    			Intent intent = new Intent(this,TestService.class);
    			startService(intent);
    			break;
    
    		default:
    			break;
    		}
    	}


    打印结果:



    另外须要注意的是。多次调用stopSelf()不会抛出异常。




  • 相关阅读:
    rdlc报表动态生成实例
    动态分页实现
    多文件上传
    文件压缩
    javascript解决中文传递乱码和特殊字符问题
    rdlc报表动态生成公共类
    SQLHelp类
    验证码
    使用bison和yacc制作脚本语言(3)
    C Mingw gcc printf 刷新缓冲行
  • 原文地址:https://www.cnblogs.com/jzssuanfa/p/6758379.html
Copyright © 2011-2022 走看看