본문 바로가기

Android/일반

안드로이드/Android 노티피케이션(Notification) 사용법


 < 개발 환경 > 
   SDK 버전 : 안드로이드 SDK 2.2  
   API LEVEL : 8 
   이클립스 버젼 : Indigo
   테스트단말 : 삼성갤럭시 S2



안드로이드/Android 노티피케이션(Notification) 사용법



안드로이드 노티피케이션 사용법 입니다.


public class TestNotificationActivity extends Activity implements OnClickListener{
	
	private NotificationManager nm = null;
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        setLayout();
    }

	@Override
	public void onClick(View v) {
		switch (v.getId()) {
		case R.id.btn_commit:
			
			nm = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
			
			// PendingIntent를 등록 하고, noti를 클릭시에 어떤 클래스를 호출 할 것인지 등록. 
			PendingIntent intent = PendingIntent.getActivity(
					TestNotificationActivity.this, 0, 
					new Intent(TestNotificationActivity.this, NotificationConfirm.class), 0);
			
			String ticker = et_Tiker.getText().toString();
			String title = et_Title.getText().toString();
			String text = et_Message.getText().toString();
										
			// status bar 에 등록될 메시지(Tiker, 아이콘, 그리고 noti가 실행될 시간)
			Notification notification =
				new Notification(android.R.drawable.btn_star,
						ticker, System.currentTimeMillis());
			
			// List에 표시될 항목
			notification.setLatestEventInfo(TestNotificationActivity.this, 
					title, text, intent);
			
			// noti를 클릭 했을 경우 자동으로 noti Icon 제거
//			notification.flags = notification.flags | notification.FLAG_AUTO_CANCEL;
			
			// 1234 notification 의 고유아이디
			nm.notify(1234, notification);
			Toast.makeText(TestNotificationActivity.this, "Notification Registered.", 
					Toast.LENGTH_SHORT).show();
			
			break;

		default:
			break;
		}
	}
	
	/*
	 * Layout
	 */
	private EditText et_Tiker = null;
	private EditText et_Title = null;
	private EditText et_Message = null;
	private Button btn_Commit = null;
	
	private void setLayout() {
		btn_Commit = (Button) findViewById(R.id.btn_commit);
		btn_Commit.setOnClickListener(this);
		et_Tiker = (EditText) findViewById(R.id.et_tiker);
		et_Title = (EditText) findViewById(R.id.et_title);
		et_Message = (EditText) findViewById(R.id.et_message);
		
	}
}


노티피케이션 클릭시 호출하는 Activity 입니다.


public class NotificationConfirm extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		TextView tv = new TextView(this);
		tv.setText("노티피케이션을 제거 하였습니다.");
		setContentView(tv);
		
		// notification 매니저 생성
		NotificationManager nm = 
				(NotificationManager)getSystemService(NOTIFICATION_SERVICE);
		
		// 등록된 notification 을 제거 한다.
		nm.cancel(1234);
		
	}
}


파일첨부 : 


스크린샷 :