博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android Service服务(二)
阅读量:2345 次
发布时间:2019-05-10

本文共 4698 字,大约阅读时间需要 15 分钟。

创建服务和Binder的子类

public class MyServerce extends Service {
@Override public void onCreate() { super.onCreate(); Log.d("MyServerce","创建服务"); } @Override public int onStartCommand(Intent intent, int flags, int startId) { Log.d("MyServerce","每次服务启动时候调用"); return super.onStartCommand(intent, flags, startId); } @Override public void onDestroy() { Log.d("MyServerce","服务销毁"); super.onDestroy(); } @Override public void onConfigurationChanged(Configuration newConfig) { Log.d("MyServerce","配置更改"); //服务停止 stopSelf(); super.onConfigurationChanged(newConfig); } @Override public void onLowMemory() { Log.d("MyServerce","内存不足"); super.onLowMemory(); } @Override public void onTrimMemory(int level) { Log.d("MyServerce","压缩处理内存"); super.onTrimMemory(level); } @Nullable @Override public IBinder onBind(Intent intent) { return myBinder; } @Override public boolean onUnbind(Intent intent) { return super.onUnbind(intent); } @Override public void onRebind(Intent intent) { super.onRebind(intent); } @Override public void onTaskRemoved(Intent rootIntent) { super.onTaskRemoved(rootIntent); } //内部类MyBinder private MyBinder myBinder = new MyBinder(); class MyBinder extends Binder { public MyBinder() { super(); } public void startDownload(){ } public int getProgress(){ return 0; } @Override public void attachInterface(IInterface owner, String descriptor) { super.attachInterface(owner, descriptor); } @Override public String getInterfaceDescriptor() { return super.getInterfaceDescriptor(); } @Override public boolean pingBinder() { return super.pingBinder(); } @Override public boolean isBinderAlive() { return super.isBinderAlive(); } @Override public IInterface queryLocalInterface(String descriptor) { return super.queryLocalInterface(descriptor); } @Override protected boolean onTransact(int code, Parcel data, Parcel reply, int flags) throws RemoteException { return super.onTransact(code, data, reply, flags); } @Override public void dump(FileDescriptor fd, String[] args) { super.dump(fd, args); } @Override public void dumpAsync(FileDescriptor fd, String[] args) { super.dumpAsync(fd, args); } @Override public void linkToDeath(DeathRecipient recipient, int flags) { super.linkToDeath(recipient, flags); } @Override public boolean unlinkToDeath(DeathRecipient recipient, int flags) { return super.unlinkToDeath(recipient, flags); } @Override protected void finalize() throws Throwable { super.finalize(); } @Override protected void dump(FileDescriptor fd, PrintWriter fout, String[] args) { super.dump(fd, fout, args); } }}

在Activity中实现绑定

public class Test1Activity extends Activity implements View.OnClickListener{
private MyServerce.MyBinder myBinder; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.test1); ((Button)findViewById(R.id.button_start)).setOnClickListener(this); ((Button)findViewById(R.id.button_stop)).setOnClickListener(this); } @Override public void onClick(View view) { switch (view.getId()){ case R.id.button_start: // Intent bindintent = new Intent(this,MyServerce.class); //绑定服务 bindService(bindintent,serviceConnection,BIND_AUTO_CREATE); break; case R.id.button_stop: //解绑服务 unbindService(serviceConnection); break; default: break; } } private ServiceConnection serviceConnection = new ServiceConnection() { @Override public void onServiceConnected(ComponentName componentName, IBinder iBinder) { Log.d("ServiceConnection","服务成功绑定"); myBinder = (MyServerce.MyBinder) iBinder; myBinder.startDownload(); myBinder.getProgress(); } @Override public void onServiceDisconnected(ComponentName componentName) { Log.d("ServiceConnection","服务解除绑定"); } };}

后面再写前台服务和IntentService,以及服务下载,写的比较没有逻辑见谅

转载地址:http://umnvb.baihongyu.com/

你可能感兴趣的文章
先进软件开发技术与工具
查看>>
高级软件工程
查看>>
HTML学习总结
查看>>
JSP注释常用的有两种:HTML注释和隐藏注释(JSP专有注释)
查看>>
CSS学习总结
查看>>
大龄程序员的未来在何方
查看>>
MyEclipse中Egit安装与使用
查看>>
Egit使用过程中遇到的问题及解决办法
查看>>
Git学习总结
查看>>
JSON学习
查看>>
有关项目的基础知识
查看>>
创建Java工程实现发送邮件(163邮箱)
查看>>
java.lang.NoClassDefFoundError: com/sun/mail/util/MailLogger javax/mail/MessagingException
查看>>
JavaScript学习
查看>>
JavaScript学习总结
查看>>
JQuery学习总结笔记1
查看>>
JQuery学习笔记2
查看>>
代码质量及其优化(学习笔记)
查看>>
将代码托管到GitHub
查看>>
Java实现PDF的生成(使用IText)
查看>>