You are on page 1of 5

u tin l to 1 giao din iu khin service chi nhc bng layout n gin : M: <LinearLayout xmlns:android="http://schemas.android.

com/apk/res/andro id" android:orientation="vertical" android:padding="4dip" android:gravity="center_horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="0" android:paddingBottom="4dip" android:text="@string/local_service_binding"/> <Button android:id="@+id/bind" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/bind_service"> <requestFocus /> </Button> <Button android:id="@+id/unbind" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/unbind_service"> </Button> <Button android:id="@+id/play" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/Play"> </Button> </LinearLayout>

To 1 class LocalService.java extend t Service v mt lp con LocalBinder tha k t lp Binder ( dng iu khin service ) M: public class LocalService extends Service { public class LocalBinder extends Binder { LocalService getService() { return LocalService.this; } } ..... } T np chng phng thc onBind bng cch tr li gi tr mBinder M: private final IBinder mBinder = new LocalBinder(); @Override public IBinder onBind(Intent intent) { return mBinder; } To mt i tng MediaPlayer chi nhc n gin ( s dng chi file abc.mp3 t trong folder res/raw ): M: MediaPlayer mMediaPlayer; public void startMp3Player() { mMediaPlayer = MediaPlayer.create(getApplicationContext(), R.raw.abc); mMediaPlayer.start(); } public void mp3Stop() { mMediaPlayer.stop(); mMediaPlayer.release(); }

lp LocalServiceBinding.java extend t lp Activity chng ta ch cn n i tng mConnection c nhim v gim st kt ni ca service chi nhc. M: private ServiceConnection mConnection = new ServiceConnection() { public void onServiceConnected(ComponentName className, IBinder service) { mBoundService = ((LocalService.LocalBinder)service).getService(); Toast.makeText(LocalServiceBinding.this, R.string.local_service_connected, Toast.LENGTH_SHORT).show(); } public void onServiceDisconnected(ComponentName className) { mBoundService = null; Toast.makeText(LocalServiceBinding.this, R.string.local_service_disconnected, Toast.LENGTH_SHORT).show(); } }; V x l s kin 3 button ( Bind, Unbin, Play/Stop ) M: private OnClickListener mBindListener = new OnClickListener() { public void onClick(View v) { bindService(new Intent(LocalServiceBinding.this, LocalService.class), mConnection, Context.BIND_AUTO_CREATE); mIsBound = true; mPlayButton.setEnabled(true); } }; private OnClickListener mPlayListener = new OnClickListener() {

public void onClick(View v) { if(mPlayButton.getText() == "Play") { mBoundService.startMp3Player(); mPlayButton.setText("Stop"); } else { mBoundService.mp3Stop(); mPlayButton.setText("Play"); } } }; private OnClickListener mUnbindListener = new OnClickListener() { public void onClick(View v) { if (mIsBound) { unbindService(mConnection); mIsBound = false; mPlayButton.setEnabled(false); } } };

Hng dn lp trnh c bn vi Android - Bi 6 Bi 6 : Android SQLite Database Trong bi hm nay mnh s gii thiu vi cc bn c s d liu trn Android SQLiteDatabase. 0. Gii thiu SQLite Database Mi ng dng u s dng d liu, d liu c th n gin hay i khi l c 1 cu trc. Trong Android th h c s d liu c s dng l SQLite Database, y l h thng m ngun m c s dng rng ri trong cc ng dng ( Mozilla

Firefox s dng SQLite lu tr cc d liu v cu hnh, iPhone cng s dng c s d liu l SQLite). Trong Android , c s d liu m bn to cho 1 ng dng th ch ng dng c quyn truy cp v s dng, cc ng dng khc th khng. Khi c to, c s d liu SQLite c cha trong th mc /data/data/<package_name>/databases . Tip theo mnh s gii thiu vi cc bn cch to v s dng c s d liu SQLite . Cch tt nht hiu l thuyt l thc hnh, cc bn c th to ngay 1 project trong workspace t tn l : SQLiteDemo. ng dng ny n gin ch to 1 c s d liu USER bao gm 2 trng ( id , name ) , ngoi ra c cc thao tc thm , c , sa , xa.

You might also like