※ Notification ?
- 안드로이드 폰 최상단(상태바)에 표시되는 메시지 이다. 대표적으로 Message, Missed Call 등이 있다.
사진출처 : 서울위즈 앱 창업자를 위한 안드로이드 실무 동영상
※ 구현
MainActivity
public class MainActivity extends Activity {
final static int NOTI_ID = 50;
Button btnNoti;
//Notification을 관리해준다.
NotificationManager notiManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnNoti = (Button) findViewById(R.id.bt_noti);
btnNoti.setOnClickListener(listener);
//notification 초기화
notiManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
}
private void notiStart(){
//생성될 인텐트의 컨택스트 ,이동할 컨택스트
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
intent.putExtra("str", "value");
//앱이 꺼저도 노티가 유지될 수 있도록 하는 기능
PendingIntent pendingIntent = PendingIntent.getActivity(MainActivity.this, 0, intent, 0);
Notification notification = new Notification.Builder(MainActivity.this)
.setSmallIcon(R.drawable.ic_launcher)
.setTicker("Noti Message")
.setContentTitle("Noti Title")
.setContentText("Noti Content")
//노티 시간설정 여기서는 즉시 적용된다.
.setWhen(System.currentTimeMillis())
.setContentIntent(pendingIntent)
.build();
//notification에 유니크한 아이디값을 주어 관리한다.
notiManager.notify(NOTI_ID, notification);
}
OnClickListener listener = new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.bt_noti:
notiStart();
break;
default:
break;
}
}
};
}
SecondActivity
public class SecondActivity extends Activity {
NotificationManager notiManager;
TextView tv01;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
notiManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
notiManager.cancel(MainActivity.NOTI_ID);
tv01 = (TextView) findViewById(R.id.tv_01);
Intent intent = getIntent();
String s = intent.getStringExtra("str");
tv01.setText(s);
}
}
activity_main
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.android_20_1_ex1.MainActivity" >
<Button
android:id="@+id/bt_noti"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Noti Start" />
</LinearLayout>
activity_second
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.android_20_1_ex1.SecondActivity" >
<TextView
android:id="@+id/tv_01"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"/>
</LinearLayout>
'플밍 is 뭔들 > 안드로이드_인강' 카테고리의 다른 글
13-1. 스레드 (0) | 2016.11.28 |
---|---|
12-2. 알람 (0) | 2016.11.28 |
11-3. 팝업대화상자 (0) | 2016.11.27 |
11-2. 팝업대화상자 (0) | 2016.11.27 |
11-1. 팝업대화상자 (0) | 2016.11.27 |