package com.wuxiaolong.androidsamples; import android.content.ComponentName; import android.content.Intent; import android.content.ServiceConnection; import android.os.Bundle; import android.os.IBinder; import android.support.v7.app.AppCompatActivity; import android.view.View; import com.wuxiaolong.androidsamples.service.HelloService; public class HelloServiceActivity extends AppCompatActivity { HelloService.HelloBinder mBinder; //Service和Activity通信 private ServiceConnection serviceConnection = new ServiceConnection() { @Override public void onServiceDisconnected(ComponentName name) { } @Override public void onServiceConnected(ComponentName name, IBinder service) { mBinder = (HelloService.HelloBinder) service; mBinder.startDownload(); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_hello_service); findViewById(R.id.start_service).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(getApplicationContext(), HelloService.class); startService(intent); Intent broadcast = new Intent(); broadcast.setAction("com.wuxiaolong.apksample.HelloBroadcastReceiver"); if (android.os.Build.VERSION.SDK_INT >= 12) { intent.setFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);//3.1以后的版本需要设置Intent.FLAG_INCLUDE_STOPPED_PACKAGES } broadcast.putExtra("msg", "这是一个普通广播"); sendBroadcast(broadcast); } }); findViewById(R.id.stop_service).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(getApplicationContext(), HelloService.class); stopService(intent); } }); findViewById(R.id.bind_service).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //调用者与服务绑定在了一起,调用者一旦退出,服务也就终止 Intent intent = new Intent(getApplicationContext(), HelloService.class); bindService(intent, serviceConnection, BIND_AUTO_CREATE); } }); findViewById(R.id.unbind_service).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //让Service和Activity解除关联 unbindService(serviceConnection); } }); } }