반응형

 버튼을 클릭하면 상태표시줄에 알림(Notification)이 발생하는 소스코드입니다.


메인화면                                     알림 발생(상태표시줄)                  상태표시줄에 남아있는 알림 아이콘

    


상태바를 드래그하면 보이는 알림창(확장상태바)             상태바의 지우기 버튼을 누르면 알림이 삭제됨

             




Layout 파일

 activity_main.xml

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    tools:context="${relativePackage}.${activityClass}" >


    <Button android:id="@+id/button"

        android:layout_width="match_parent"

        android:layout_height="50dp"

        android:text="generate Notification"

        android:onClick="mOnClick"/>


</RelativeLayout>


 



소스파일

 

 MainActivity.java

public class MainActivity extends Activity {


@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

}

//Button을 클릭했을 때 자동으로 호출되는 callback method....

public void mOnClick(View v){

switch( v.getId() ){

case R.id.button:

//알림(Notification)을 관리하는 NotificationManager 얻어오기

NotificationManager manager= (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);

//알림(Notification)을 만들어내는 Builder 객체 생성

//API 11 버전 이하도 지원하기 위해 NotificationCampat 클래스 사용

//만약 minimum SDK가 API 11 이상이면 Notification 클래스 사용 가능 

NotificationCompat.Builder builder= new NotificationCompat.Builder(this);

//Notification.Builder에게 Notification 제목, 내용, 이미지 등을 설정//////////////////////////////////////


 builder.setSmallIcon(android.R.drawable.ic_dialog_email);//상태표시줄에 보이는 아이콘 모양

builder.setTicker("Notification"); //알림이 발생될 때 잠시 보이는 글씨


//상태바를 드래그하여 아래로 내리면 보이는 알림창(확장 상태바)의 아이콘 모양 지정

builder.setLargeIcon(BitmapFactory.decodeResource(getResources(), android.R.drawable.ic_input_add));

builder.setContentTitle("Contents Title");    //알림창에서의 제목

builder.setContentText("Contents TEXT");   //알림창에서의 글씨


///////////////////////////////////////////////////////////////////////////////////////////////////////

Notification notification= builder.build();   //Notification 객체 생성

manager.notify(1, notification);             //NotificationManager가 알림(Notification)을 표시

break;

}

}

}

   

반응형

+ Recent posts