제1행 코드 제8장 - 멀티미디어
4263 단어 독서 노트
알림의 창설은 방송 수신기와 서비스에 경향이 있기 때문에 일반적으로 프론트 데스크톱의 응용 프로그램은 이벤트에서 알림을 사용하지 않는다(이미 화면에 직접 알림을 하면 되기 때문에 알림보다 효과가 더 좋겠지...)
Notification Manager 클래스는 Context의 getSystem Service () 를 호출해서 알림을 관리합니다. 이 방법은 문자열을 매개 변수로 가져와서 시스템 서비스를 호출할지 결정합니다.Context로 전송됩니다.NOTIFICATION_SERVICE면 됩니다.
각 버전의 호환 문제를 해결하기 위해서, 우리는support-v4 라이브러리의NotificationCompact 클래스를 사용하여 대상을 만들 수 있습니다.
기본 설정에는 다음과 같은 다섯 가지 방법이 있습니다.
.setContentTitle("This is a content title")
.setContentText("This is a content text")
.setWhen(System.currentTimeMillis())
.setSmallIcon(R.mipmap.ic_launcher)
.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher))
책의 예에서 크기 아이콘을 모두 같은 것으로 설정했는데 이런 방법은 학습 실험을 할 때만 사용할 수 있고 실제 프로젝트에서 특정한 해상도 그림을 각각 설정해야 한다.
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button sendNotice = (Button) findViewById(R.id.send_notice);
// MainActivity OnClickListener
sendNotice.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.send_notice:
//
NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
// notification
Notification notification = new NotificationCompat.Builder(this)
//
.setContentTitle("This is a content title")
//
.setContentText("This is a content text")
//
.setWhen(System.currentTimeMillis())
//
.setSmallIcon(R.mipmap.ic_launcher)
//
.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher))
.build();
manager.notify(1, notification);//id = 1 id , 。
break;
default:
break;
}
}
}
다음 질문은'어떻게 하면 이 알림을 클릭할 수 있습니까?'
클릭 트리거를 실현하기 위해서는 먼저 새로운activity를 만들고, notification 설정에서 setContent Intent (Intent pending Intent) 방법을 사용해서 미리 만들어진 intent를 가져와서 자신의 활동을 시작해야 합니다.
//
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.send_notice:
Intent intent=new Intent(this,NotificationActivity.class);
PendingIntent pendingIntent=PendingIntent.getActivity(this,0,intent,0);
//
NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
// notification
Notification notification = new NotificationCompat.Builder(this)
//
.setContentTitle(" ")
//
.setContentText(" 。")
//
.setWhen(System.currentTimeMillis())
//
.setSmallIcon(R.mipmap.ic_launcher)
// pendingIntent
.setContentIntent(pendingIntent)
//
.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher))
.build();
manager.notify(1, notification);//id = 1 id , 。
break;
default:
break;
}
}
"case R.id.send notice"행 아래에 PendingIntent 클래스 객체가 작성되었습니다.
".sewtContentIntent ()"줄 아래에 이 대상을ContentIntent로 설정하여 notification을 누르면 새로운Activity를 만들 수 있습니다
이 장에 대한 자세한 내용은 다음에 업데이트될 것입니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로그'메타프로그램 루비 버전 2'3장 읽기동적 방법 Object#send 호출 방법은 약간 메모와 Object#send obj.send(:my_method, 3) Object#send를 사용하면 어떤 방법으로든 호출할 수 있습니다. privete 방법을 호...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.