제1행 코드 제8장 - 멀티미디어

4263 단어 독서 노트
Notification (알림) 기능은 안드로이드 시스템에서 프론트에서 실행되지 않을 때 상태 표시줄을 통해 사용자에게 정보를 전달하는 방식이다.
알림의 창설은 방송 수신기와 서비스에 경향이 있기 때문에 일반적으로 프론트 데스크톱의 응용 프로그램은 이벤트에서 알림을 사용하지 않는다(이미 화면에 직접 알림을 하면 되기 때문에 알림보다 효과가 더 좋겠지...)
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를 만들 수 있습니다
이 장에 대한 자세한 내용은 다음에 업데이트될 것입니다.

좋은 웹페이지 즐겨찾기