클릭 이벤트 추가 사용자 정의

3613 단어 Android
전언
이전 글에서 에서 우리는 사용자 정의 인터페이스를 실현했다. 그러면 우리는 사용자 정의 인터페이스에 클릭 이벤트를 어떻게 추가해야 합니까?쿨개가 알림판에'이전곡','다음곡'등 컨트롤 버튼이 있는 것처럼 우리는 버튼의 클릭 이벤트에 응답해야 하지만 방법은 이전의 클릭 설정과 다르기 때문에 따로 처리해야 한다. 다음은 간단한 설명을 드리겠습니다.
이루어지다
마찬가지로 Service의 하위 클래스인 My Service가 필요합니다. My Service의 onCreate에서 다음과 같은 코드를 설정합니다.
public class MyService extends Service {

    public static final String ONCLICK = "com.app.onclick";


    private BroadcastReceiver receiver_onclick = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            if (intent.getAction().equals(ONCLICK)) {
                Vibrator vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
                vibrator.vibrate(1000);
            }
        }
    };
    @Override
    public void onCreate() {
        super.onCreate();
        Notification notification = new Notification(R.drawable.ic_launcher,
                "JcMan", System.currentTimeMillis());
        RemoteViews view = new RemoteViews(getPackageName(),R.layout.notification);
        notification.contentView = view;
        IntentFilter filter_click = new IntentFilter();
        filter_click.addAction(ONCLICK);
        //    
        registerReceiver(receiver_onclick, filter_click);
        Intent Intent_pre = new Intent(ONCLICK);
        //  PendingIntent
        PendingIntent pendIntent_click = PendingIntent.getBroadcast(this, 0, Intent_pre, 0);
        //    
        notification.contentView.setOnClickPendingIntent(R.id.btn,pendIntent_click);
        //    
        startForeground(1, notification);
    }
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }
}

보시다시피 우리는 먼저 Broadcast Receiver의 대상을 얻은 다음에 온 Receiver에서 우리의 조작을 실현한다. 내가 클릭할 때 핸드폰이 1초 동안 진동하도록 설정했다. 물론 설정 파일에 진동 권한을 추가하는 것을 잊지 마라. 그렇지 않으면 오류가 발생할 것이다.만약에 방송에 대해 잘 모르면 먼저 방송의 메커니즘을 알아볼 수 있다. 여기서 나는 동적 등록 방송의 방법을 사용하고 또 다른 방법으로 등록한다. 그러나 나는 동적 등록을 더 좋아할 뿐이다.
소결
Notification에 ProgressBar를 추가하여 다운로드를 실현하는 진도 알림을 보려면 Notification 인터페이스를 업데이트하는 지식이 필요합니다. Activity에서 인터페이스를 업데이트하는 것과 다르지만 복잡하지는 않습니다. 제가 이 분야의 지식을 사용하지 않았기 때문에 여러분께 소개하지 않겠습니다. 관심 있는 사람은 관련 내용을 검색할 수 있습니다.

좋은 웹페이지 즐겨찾기