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