android——Service与Activity直接通讯(bindservice)留着使用的时候直接贴代码
Service端
public class LocalService extends Service { // Binder given to clients private final IBinder mBinder = new LocalBinder(); // Random number generator private final Random mGenerator = new Random(); @Override public void onCreate() { super.onCreate(); } @Nullable @Override public IBinder onBind(Intent intent) { return mBinder ; } class LocalBinder extends Binder { public LocalService getService(){ return LocalService.this; } } /** method for clients */ public int getRandomNumber() { return mGenerator.nextInt(100); } }
Activity端直接获取Service提供的随机数
public class MainActivity extends AppCompatActivity { LocalService mService; private TextView tv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tv = (TextView) findViewById(R.id.tv); tv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { tv.setText(""+mService.getRandomNumber()); } }); } @Override protected void onStart() { super.onStart(); Intent intent = new Intent(this, LocalService.class); bindService(intent,conn, Context.BIND_AUTO_CREATE); } ServiceConnection conn = new ServiceConnection() { @Override public void onServiceConnected(ComponentName componentName, IBinder iBinder) { LocalService.LocalBinder binder = (LocalService.LocalBinder)iBinder; mService = binder.getService(); Toast.makeText(mService, "成功", Toast.LENGTH_SHORT).show(); } @Override public void onServiceDisconnected(ComponentName componentName) { Toast.makeText(mService, "失败", Toast.LENGTH_SHORT).show(); } }; @Override protected void onDestroy() { super.onDestroy(); unbindService(conn); } }
不积跬步,无以至千里。

浙公网安备 33010602011771号