Android�̃z�[����ʂɏ풓����A�v�������ɂ��FAndroid�œ����g��Java�A�v���쐬����i10�j�i3/3 �y�[�W�j

» 2009�N09��28�� 00��00�� ���J
[�������C������ЃC�[�t���[]
�O�̃y�[�W�� 1|2|3 �@�@�@�@�@�@

AppWidget���w�肵���Ԋu���ƂɎ��s����ɂ�

�@AppWidget���w�肵���Ԋu���ƂɎ��s����ɂ́Aandroid:updatePeriodMillis��p���鏈�����@������܂��B�T���v���́uSlideShow�v�Ƃ����E�B�W�F�b�g�����̕��@��p���Ă��܂��B

}8@wԂƂɃC[Wĕ\ �}8�@�w����Ԃ��ƂɃC���[�W���ĕ\��

�@�\�[�X�R�[�h�́A�ȉ��̂悤�ɂȂ��Ă��܂��B

public class SlideShow extends AppWidgetProvider {
    
    static int index = 0;
    
    int[] images = {
        R.drawable.g0,
        R.drawable.g1,
        R.drawable.g2,
        R.drawable.g3,
        R.drawable.g4,
        R.drawable.g5,
        R.drawable.g6,
        R.drawable.g7,
    };
    
    @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
        RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.slide_show);
        remoteViews.setImageViewResource(R.id.ImageView01, images[index]);
        index = ++index % images.length;
        ComponentName thisWidget = new ComponentName(context, SlideShow.class);
        appWidgetManager.updateAppWidget(thisWidget, remoteViews);
    
}

�@�܂��A�K�v�Ȃ̂�AppWidgetProvider�N���X���p�����č��Ȃ���΂Ȃ�Ȃ��Ƃ������Ƃł��B�����āA�J��Ԃ��Ăяo�����onUpdate()���\�b�h���I�[�o�[���C�h����K�v������܂��B

�@����Ă��邱�Ƃ́AonUpdate()���\�b�h���Ăяo����邽�тɁA���\�[�X���̉摜��RemoteVies�N���X���o�R���ď��Ԃɐݒ肵�Ă��܂��B�摜���w�肷��index���Ȃ�static���Ƃ����ƁAonUpdate()���\�b�h���Ăяo����邽�тɁA���̃N���X�̃C���X�^���X���Đ�����������߂ł��B

AppWidget�ŃT�[�r�X��p����ɂ�

�@�ʏ�́A�R�[���o�b�N���\�b�h�ł͂��������������͍s�킸�ɁA�T�[�r�X���N�����āA�T�[�r�X���ŏ������s���悤�ɂ��܂��B�T���v���́uWhatTimeIsItNow�v�Ƃ����E�B�W�F�b�g���T�[�r�X��p����ł��ȒP�ȗ�ł��B

}9@b݂̃fW^v �}9�@�b���݂̃f�W�^�����v

�@�\�[�X�R�[�h�́A�ȉ��̂悤�ɂȂ��Ă��܂��B

public class WhatTimeIsItNow extends AppWidgetProvider {
    
    @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
        Intent intent = new Intent(context, MyService.class);
        context.startService(intent);
    }
    
    public static class MyService extends Service {
        @Override
        public void onStart(Intent intent, int startId) {
            RemoteViews remoteViews = new RemoteViews(getPackageName(), R.layout.what_time_is_it_now);
            remoteViews.setTextViewText(R.id.TextView01, new Date().toLocaleString());
            
            ComponentName thisWidget = new ComponentName(this, WhatTimeIsItNow.class);
            AppWidgetManager manager = AppWidgetManager.getInstance(this);
            manager.updateAppWidget(thisWidget, remoteViews);
        }
    
        @Override
        public IBinder onBind(Intent intent) {
            return null;
        }
    }
}

�@onUpdate()���\�b�h�̓T�[�r�X���N�����邾���A�N�����ꂽ�T�[�r�X�͎��s�㑦�I�����܂��B�������y���Ă��d���Ă��A��ɂ��̂悤�ɃT�[�r�X���N�����ď���������̂��]�܂����ł��B���̃T�[�r�X��AndroidManifest.xml�ɓo�^����Ă��Ȃ���΂Ȃ�܂���B�T�[�r�X�̓o�^���@�́A�A�ڑ�7��́u�T�[�r�X���g�p���邽�߂̐ݒ��v���Q�Ƃ��Ă��������B

�������A��肪����

�@���āAWhatTimeIsItNow�́A�z�[���X�N���[����1�b���݂̃f�W�^�����v��\������E�B�W�F�b�g�ł����A����ȃE�B�W�F�b�g�����̂͂����߂ł��܂���B

  1. 1�b���Ƃ�onUpdate()���\�b�h���Ăяo�����
  2. �o�b�N�O���E���h�ł��i�E�B�W�F�b�g���B��Ă��Ă��j1�b���Ƃ�onUpdate()���\�b�h���Ăяo�����
  3. �ق��̃A�v���̓���܂ŏd���Ȃ�
  4. �d�r�̏��Ղ�������

�@����3�D��4�D�͑傫�Ȗ��ł��B

�@�O�[�O�������J���Ă���T���v���́A1��1�񂾂��C���^�[�l�b�g�Ɂu�����̌��t�v�����ɂ����Ă����\������E�B�W�F�b�g�ł��B�m����1��1�񂮂炢�ł���΁A�܂��������ɂȂ�Ȃ��̂ŁA����android:updatePeriodMillis��p����̂ł���΁A�����Ă�1���Ԃ�1�񂮂炢�̍X�V�p�x�Ɏ��߂�̂��悢�̂ł͂Ȃ����Ǝv���܂��B

�@android:updatePeriodMillis�ȊO�̕��@�Ƃ���AlarmManager��p������@������̂ŁA��������́AAlarmManager�̎g������������܂��B

AppWidget���w�肵�����ԂɎ��s����ɂ�

�@android:updatePeriodMillis��AlarmManager�ɒu�������郁���b�g�͂����‚�����܂��B

  • android:updatePeriodMillis�Ɠ������Ƃ��ł���i�R�[�f�B���O�͕K�v�j
  • android:updatePeriodMillis�ƈقȂ���Ԃ𒲐��”\�i�R�[�f�B���O������j

�@�v����ɁA�ݒ�t�@�C���Ɋ��Ԃ��w�肷��ƁA�R�[�f�B���O�͕K�v�Ȃ����Ǎׂ�������͕ύX�ł����AAlarmManager���g�p����ƁA�R�[�f�B���O�͕K�v�����Ǎׂ��������ݒ�ł���A�Ƃ������Ƃł��B

�@�T���v���́uAlarmManagerSample�v�Ƃ����E�B�W�F�b�g���AAlarmManager���g�p�����ł��B���̃E�B�W�F�b�g��1���Ԃ�1�x�A0��0�b���傤�ǂɕ\�����X�V���鎞��A�v���ł��B

�@�ڂ����̓\�[�X�t�@�C���S�̂����Ă��������Ƃ��āA�����ł�AlarmManager���g�p���Ă�����Ƀt�H�[�J�X���Đ������܂��B

private void setAlarm(Context context) {
    Intent alarmIntent = new Intent(context, AlarmManagerSample.class);
    alarmIntent.setAction(ACTION_START_MY_ALARM);
    PendingIntent operation = PendingIntent.getBroadcast(context, 0, alarmIntent, 0);
    AlarmManager am = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
    long now = System.currentTimeMillis() + 1; // + 1 �͊m���ɖ��������ɂȂ�悤�ɂ���ی�
    long oneHourAfter = now + interval - now % (interval);
    am.set(AlarmManager.RTC, oneHourAfter, operation);
}

�@3�s�ڂ�ACTION_START_MY_ALARM�́A�����ŏ���ɒ�`�����A�N�V�����ł��B�����ő����Ď����Ŏ󂯎��A�N�V�����Ȃ̂ŁA�p�b�P�[�W����N���X��������Ɋ܂݁A���j�[�N�ɂȂ�悤�ɂ��Ă��܂��B

�@�쐬����Intent����uPendingIntent�v���쐬���A�����AlarmManager�Ɏ����ƂƂ��ɐݒ肵�Ă��܂��BAlarmManager#set(int, long, PendingIntent)���\�b�h�̑�1�����ɂ́A���̏ꍇ��AlarmManager.RTC��AlarmManager.ELAPSED_REALTIME�̂ǂ��炩�̒萔���g�p����̂��]�܂����ł��B�������g�p����ƁA�f�o�C�X��wake up���܂���B

�@���̃T���v���ł�1���Ԃ����ɂ��Ă��܂����A�Ⴆ�ΐ^�钆�͕p�x�����炵����A�t�ɐ^�钆������p�x�𑝂₵����A�Ƃ������Ƃ��A�����ŃR�[�f�B���O���Ă��邩�炱���”\�ɂȂ�܂��B

�@�Ȃ��A�����Ŏ�����Intent�������w��ő��M���Ă���̂ŁA��M���Ɏ��̎����̂��߂�Intent�̏�����Y��Ȃ��悤�ɂ��Ă��������B

�@����A���̘A�ڂŏ��߂ďo�Ă���PendingIntent�Ƃ������̂́AIntent�𕶎��ʂ��y���f�B���O���邽�߂֗̕��ȓ��ꕨ�ł��B���ɐ�������N���b�N��p�����������@�ł��A����PendingIntent���g�p���܂��B

�R�����@�u�^�C�~���O�����v�����Intent�𔭐M����PendingIntent�Ƃ́v

PendingIntent�́AIntent���^�C�~���O�����v����Ĕ��M����֗��ȃc�[���ł��B�ȉ��̂悤�Ȏg�������”\�ł��B

  • �������w�肵��Intent�𔭐M
  • �C�x���g�n���h���̑����Intent�𔭐M

�܂��APendingIntent�̍����ɂ���āAIntent�̔�ѐ�����炩���ߌ��߂��܂��B

���\�b�h ����
getActivity(�c) Activity���N������PendingIntent�̎擾
getBroadcast(�c) �u���[�h�L���X�g�𓊂���PendingIntent�̎擾
getService(�c) Service���N������PendingIntent�̎擾
�\3�@PendingIntent�̃��\�b�h

�����Ώۂ����炩����Activity��Service�ɍi�荞�߂Ă���ꍇ�A�������g�p����̂����ʓI�ł��B����̃T���v���ł�setBroadcast()���\�b�h��setService()���\�b�h���g�p���Ă���̂ŁA�\�[�X�R�[�h�Q�Ƃ��Ďg�������K�����Ă��������B


AppWidget���N���b�N���Ɏ��s����ɂ�

�@�T���v���́uClickSample�v�Ƃ����E�B�W�F�b�g���A�E�B�W�F�b�g�ŃN���b�N�C�x���g���E����ł��B

}10@EBWFbgŃNbNCxgETv �}10�@�E�B�W�F�b�g�ŃN���b�N�C�x���g���E���T���v��

�@�e�L�X�g�����܂��̓{�^�����N���b�N����ƁA���ݎ�����\������T���v���ł��B

RemoteViews remoteViews = new RemoteViews(getPackageName(), R.layout.click_sample);
Intent clickIntent = new Intent();
clickIntent.setAction(ACTION_MY_CLICK);
PendingIntent pendingIntent = PendingIntent.getService(this, 0, clickIntent, 0);
remoteViews.setOnClickPendingIntent(R.id.TextView01, pendingIntent);
remoteViews.setOnClickPendingIntent(R.id.Button01, pendingIntent);

�@��L�R�[�h�́ARemoteViews�o�R��GUI�R���|�[�l���g��PendingIntent��ݒ肵�Ă�����ł��B

�@�܂��ARemoteViews���쐬���A����Intent���쐬���܂��B�쐬����Intent�ɂ̓A�N�V������ݒ肵�Ă��܂����A����̓T�[�r�X�Ńt�B���^���邽�߂Ƀ��j�[�N�ȕ����񂪕K�v�ł��B�p�b�P�[�W����N���X����g�ݍ��킹��̂��悢�ł��傤�B���̕�����̓��e��AndroidManifest.xml�ɂ��t�B���^��ݒ肵�܂��B

�@���ɁAPendingIntent���쐬���܂��B�쐬����PendingIntent���A�C�ӂ�GUI�R���|�[�l���g�ɐݒ肷��Ί����ł��B

�@���ꂾ���ŁA�ݒ肵��GUI�R���|�[�l���g���N���b�N����΁A�T�[�r�X��Intent�����ł��āAService#onStart()���\�b�h���Ăяo����܂��B

AppWidget���g���ۂ�2�‚̒��ӓ_

�@AppWidget�͊J���҂ɂƂ��Đ�����������̂́A�z�[���X�N���[���ɏ풓�ł���Ƃ��������b�g���J���҂ɂƂ��Ă��A�G���h���[�U�[�ɂƂ��Ă����͓I�ł��BAppWidget�̐ݒ��ʂ�Activity�ō쐬������APendingIntent���g�p����Activity�ƘA�g��������A�T�[�r�X���g���̂ĂȂ��悤�ɂ����肷�邱�ƂŁA����ɃE�B�W�F�b�g���p���t���ɂȂ�Ǝv���܂��B

�@�Ō�ɁA�{�L�����M���ɋC���t�����_���Љ�ďI���ɂ��悤�Ǝv���܂��B

�E�B�W�F�b�g�N�����ɋ󂫃X�y�[�X���Ȃ��ꍇ

�@�z�[���X�N���[���ɃZ���̋󂫂��Ȃ���ԂŃE�B�W�F�b�g���N�����Ă��܂�����A�ȉ��̂悤�ȃ��b�Z�[�W�͏o�܂����A���̌�\��������Ȃ��܂܁A�����Ɨ��œ����Ă��邱�ƂɂȂ�܂��B

}11@󂫃Xy[XȂꍇ̏ �}11�@�󂫃X�y�[�X���Ȃ��ꍇ�̏���

�@���̏�ԂɂȂ�ƁA�G���h���[�U�[�͂��̕\������Ȃ��E�B�W�F�b�g���폜�ł����A�܂��v���O�����I�ɂ��\��������悤�ɂ��邱�Ƃ͂ł��܂���B���̃��b�Z�[�W���o��̂́A�ŏ���onUpdate()���\�b�h���Ăяo�����O�Ȃ̂ŁA�u�v���O�����I�Ɏ��O�Ƀ`�F�b�N����v�Ƃ������Ƃ��ł��܂���B�[�����ċN�����Ă��\������Ȃ���ԂŋN�������܂܂ł��B����Ɉ������ƂɁA�G���h���[�U�[�͕\������Ă��Ȃ���ԂŃE�B�W�F�b�g���N�����Ă��邱�ƂɋC���t���Ȃ��ł��傤�B

�@Android 1.5���_�ł́A�B�ꂱ�̏�Ԃ�ŊJ�����́A�Y���̃E�B�W�F�b�g���A���C���X�g�[�����邱�Ƃ����ł��B

�ق��̃E�B�W�F�b�g�̕s��̉e�����󂯂�”\��������

�@�Ⴆ�΁A�uFoo�v�Ƃ����E�B�W�F�b�g��onUpdate()���\�b�h��NullPointerException�Ȃǂ̗�O�Ȃǂ𔭐������Ă��܂����ꍇ�A�uBar�v�Ƃ����E�B�W�F�b�g�̓��삪�s����ɂȂ��Ă��܂����Ƃ�����悤�ł��B

�@���̏ꍇ�A���b�Z�[�W���o�āA�ǂ̃E�B�W�F�b�g�ɖ�肪���邩�̓G���h���[�U�[�������邩������Ȃ��̂Łi���b�Z�[�W���s�e�؂Ȃ̂ŁA�������Ȃ���΂Ȃ�Ȃ��j�A���Ԃ͋󂫃X�y�[�X���Ȃ��Ƃ��������܂��ł��B

�@�J�����Ɏ����̃E�B�W�F�b�g�ŗ�O�𔭐������Ă��܂����ꍇ�A��͂肻�̌�̊J���Ɏx����������Ă��܂����Ƃ�����܂��B�����Ȃ����ꍇ�́A��������Y���̃E�B�W�F�b�g���폜���āA�G�~�����[�^���ċN������ΏC�����܂��B


�uAndroid�œ����g��Java�A�v���쐬����v�o�b�N�i���o�[
�O�̃y�[�W�� 1|2|3 �@�@�@�@�@�@

Copyright © ITmedia, Inc. All Rights Reserved.

'; this.insertTarget = document.querySelector('#cmsBody .subscription') || document.querySelector('#cmsBody .inner'); }; BodyAdIMSWithCCE.prototype = Object.create(BodyAdContent.prototype); BodyAdIMSWithCCE.prototype.activate = function () { refreshGam('InArtSpecialLink'); } // global reference window.itm = itm; //entry point BodyAdEventBase.polyfill(); const bodyAdManager = BodyAdManager.getInstance(); bodyAdManager.addEventListener(BodyAdManager.EVENTS.READY, function (ev) { bodyAdManager.loadAdvertise(); }); bodyAdManager.init(); })();
�X�|���T�[����̂��m�点PR

���ڂ̃e�[�}

Microsoft  WindowsőO2025
AI for GWjAO
[R[h^m[R[h Zg by IT - ITGWjArWlX̒SŊ􂷂gD
Cloud Native Central by IT - XP[uȔ\͂gD
�V�X�e���J���m�E�n�E �y�����i�r�zPR
���Ȃ��ɂ������߂̋L��PR

RSS�ɂ‚���

�A�C�e�B���f�B�AID�ɂ‚���

���[���}�K�W���o�^

��IT�̃��[���}�K�W���́A �������A���ׂĖ����ł��B���Ѓ��[���}�K�W�������w�ǂ��������B