当前位置: 代码迷 >> 综合 >> Android学习笔记(五)Activiy学习——Service
  详细解决方案

Android学习笔记(五)Activiy学习——Service

热度:14   发布时间:2023-10-31 05:16:36.0

创建一个Service

右键--new--service

创建一个service

在MainActiviy中

//启动
findViewById(R.id.btnService).setOnClickListener(new View.OnClickListener() {@Override
    public void onClick(View v) {startService(new Intent(MainActivity.this,MyService.class));
    }
});
//停止(服务的实例在操作系统中只有一个)
findViewById(R.id.btnService).setOnClickListener(new View.OnClickListener() {@Override
    public void onClick(View v) {stopService(new Intent(MainActivity.this,MyService.class));
    }
});
在service中

//执行startService时会执行
@Override
public int onStartCommand(Intent intent, int flags, int startId) {new Thread(){@Override
        public void run(){super.run();
            System.out.println("服务正在运行");

            while (true){try {sleep(1000);
                } catch (InterruptedException e) {e.printStackTrace();
                }}}}.start();
    return super.onStartCommand(intent, flags, startId);
}


绑定service(也会创建)


bindService(new Intent(MainActivity.this, MyService.class), this, Context.BIND_AUTO_CREATE);


在service文件中设置

@Override
public IBinder onBind(Intent intent) {return new Binder();
}

解绑service(destroy)

unbindService(this);

activity与service的通信

启动service并通信

在startService中添加

Intent i = new Intent(this,MyService.class);
i.putExtra("data","from activity");

然后在service的启动代码中获取

intent.getStringExtra("data");


绑定service并通信











  相关解决方案