android四大组件之Service
来源:互联网 发布:能挣钱的软件 编辑:程序博客网 时间:2024/05/18 16:57
service与activity都是从Context派生出来。
先看service的生命周期:
通过代码看service的几种形式:
1首先,最简单的形式直接启动service;
public class MyService extends Service { public MyService() { } @Override public IBinder onBind(Intent intent) { // TODO: Return the communication channel to the service. throw new UnsupportedOperationException("Not yet implemented"); } @Override public int onStartCommand(Intent intent, int flags, int startId) { Toast.makeText(this,"myService start",Toast.LENGTH_SHORT).show(); return START_STICKY; }}
2通过bindService()启动service;
public class BindService extends Service { private IBinder binder=new LocalBinder(); public BindService() { } public class LocalBinder extends Binder { BindService getService(){ return BindService.this; } } public IBinder onBind(Intent intent){ return binder; } public String getString(){ return "suceessful !!!"; }}
3通过intentService;其中intentService是运行另外一个线程,而前面的两个是运行在主线程的;
public class MyIntentService extends IntentService { public MyIntentService() { super("MyIntentService"); } @Override protected void onHandleIntent(Intent intent) { System.out.println("IntentService start"); }}
看主测试类,这里要注意下bindService的用法;
public class MainActivity extends AppCompatActivity { Button btnService,btnIntentService,bindService; BindService mService; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btnService=(Button)findViewById(R.id.service); btnIntentService=(Button)findViewById(R.id.IntentService); bindService=(Button)findViewById(R.id.bindService); btnService.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent=new Intent(getApplicationContext(),MyService.class); startService(intent); } }); btnIntentService.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent1 = new Intent(getApplicationContext(), MyIntentService.class); startService(intent1); } }); bindService.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(getApplication(),mService.getString(),Toast.LENGTH_SHORT).show(); } }); } @Override protected void onStart(){ super.onStart(); Intent intent = new Intent(getApplicationContext(), BindService.class); bindService(intent, mConnection, getApplicationContext().BIND_AUTO_CREATE); } private ServiceConnection mConnection=new ServiceConnection() { @Override public void onServiceConnected(ComponentName name, IBinder service) { BindService.LocalBinder binder=(BindService.LocalBinder)service; mService=binder.getService(); } @Override public void onServiceDisconnected(ComponentName name) { } };}
0 0
- Android四大组件之 Service
- Android四大组件之 Service
- Android四大组件之 Service
- android四大组件之Service
- android四大组件之Service
- android四大组件之Service
- Android四大组件之Service
- Android四大组件之service
- Android四大组件之Service
- Android四大组件之 Service
- Android四大组件之Service
- Android四大组件之Service
- Android四大组件之service
- Android四大组件之Service
- Android四大组件之Service
- android四大组件之Service
- android四大组件之Service
- Android 四大组件之 Service
- 欢迎使用CSDN-markdown编辑器
- Java使用Pipeline对Redis批量读写(hmset&hgetall)
- cas 部署过程中遇到的一些问题(持续更新)
- 微信支付中xml和map互转
- 各种编程语言查找按钮事件
- android四大组件之Service
- RegexKitLite|IOS正则
- Java NIO教程(六)Selector
- Xcode 失效 修改不起作用 清除缓存
- 最安全的网络验证码防破解系统
- Opencv vs2010实现SURF简单算法
- Android属性动画LayoutTransition(布局容器动画)
- 基于MFC对txt文档的读与写
- ToastTools土豆丝工具类