마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

알람 어플관련하여 intent 질문좀 드릴게요...

0 추천

다른 엑티비티에서
 

button4.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent intent = new Intent(getApplicationContext(),
AlarmReceiver.class);
        Toast.makeText(getApplicationContext(),
"1번곡 선택", Toast.LENGTH_LONG).show();
        intent.putExtra("num", 1);
        startActivity(intent);
    }
});

버튼이 눌리면

알람 리시버 엑티비티에서

public class AlarmReceiver extends BroadcastReceiver {
    public void onReceive(Context context, Intent intent){
      
 PowerManager pm =
(PowerManager) context.getSystemService(context.POWER_SERVICE);
   
    PowerManager.WakeLock wl =
pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,"");
        int num = intent.getIntExtra("num",1);
        wl.acquire(num);
        Toast.makeText(context,
"알람발생",Toast.LENGTH_LONG).show();
        MediaPlayer music;
        music = MediaPlayer.create(context,R.raw.song);
            music.start();
        wl.release(num);
    }
}

보내진 인텐트를 토대로 노래를 선택하려고 하는데.. if문으로 보내진 번호에 맞는 음악 raw에서 선택하게 하려고 하는데.. if문만들고 raw에서 음악선택을 할수있겠는데.. intent가 제대로 안이루어지고 번호를 어찌받아야될지 잘모르겠습니다 ㅠ

음메하고울지 (130 포인트) 님이 2016년 6월 21일 질문

1개의 답변

+1 추천

밑에 코드 보시면 AlarmReceiver가 Activity가 아닌 BroadcastReceiver 입니다.

위에 클릭이벤트코드에서 startActivity()함수가 아닌 sendBroadcast()함수를 쓰셔야 AlarmReceiver의 onReceive 함수에서 보내신 Intent정보를 받을수 있을것입니다.

 

startActivity()를 sendBroadcast()함수로 바꿔보셔요~

 

Development Guy (70,570 포인트) 님이 2016년 6월 21일 답변
...