본문 바로가기

플밍 is 뭔들/안드로이드_인강

12-1. 노티(Notification)바

※ 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