2012-04-22 3 views
0

AlarmManager를 사용하여 알람을 예약했으며 BroadcastReceiver를 시작합니다. 브로드 캐스트 리시버 내부에서 Activity를 호출하고 팝업 대화 상자를 만들고 싶습니다.AlarmManager에서 대화 상자를 만드시겠습니까?

여기서 중요한 것은 사용자가 어디에 있든 배경을보고 싶습니다. 먼저 내 응용 프로그램을 맨 앞에 가져오고 싶습니다. 다음 코드를 살펴 :

Intent intent = new Intent(context, AlarmActivity.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
context.startActivity(intent); 

을 지금 여기에 내가 원하지 않는, 발생하는 것입니다 : 1. 사용자가 2. 사용자 프레스 가정 내 응용 프로그램에서 찾고 및 일부 다른 응용 프로그램 에 지금 3. 내 응용 프로그램은 백그라운드에서 계속 실행 4. 알람 triggers-> BroadcastReceiver-> 위의 목적은 사용자는 이제 내 응용 프로그램의 마지막 페이지에서 찾고 5. 시작되고 내 팝업 대화

내가 대신에 다음과 같이 입력하십시오 : 5. 사용자는 자신이 속한 응용 프로그램을 계속보고 있지만 그들은 이제 내 팝업 대화 상자가 있습니다.

응용 프로그램을 맨 앞에 가져 가지 않고 어떻게 활동을 호출 할 수 있습니까?

+0

어디에서 나오는 팝업은 사용자 경험에 대한 나쁜 : 당신은 당신의 알람 (들)이 시작될 때 그것이 무엇을합니까 다른 코드에이 코드를 넣을 수 있습니다. 대신 알림을 사용해야합니다. – Luksprog

+0

그건 내 앱에서 완전히 다른 시나리오입니다. 사용자가 알람을 울리면 소리/진동과 함께 나타나는 팝업 알림이 알람 애플리케이션에 내장 된 것처럼 적절하다고 생각합니다. 어쩌면 소스에서 알람 애플리케이션이 어떻게 처리하는지 확인할 수 있습니다. – pcm2a

+0

'BroadcastReceiver'에서 대화 상자를 시작할 수 없습니다. 대신 (BroadcastReceiver에서) 시작하는 대화 테마로 액티비티를 가질 수 있으므로 대화 상자가 나타납니다. – Luksprog

답변

0

Luksprog가 말한 것은 사실이지만 알람 설정에 해당하는 경우 기본 경고도 AlertDialog를 표시합니다.

public void alertBtn1 (View v){ 
     new AlertDialog.Builder(this) 
      .setTitle("AlertDialog") 
      .setMessage(R.string.text OR "YOURTEXTHERE") 
    // If you want to the user to have multiple options, you can replace this 
      .setNeutralButton("YOURTEXTHERE", null) 
    // with this:    
      .setNeutralButton("YOURTEXTHERE", null) 
      .setPositiveButton("YOURTEXTHERE", new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int which) { 
    // finish(); or whatever you like to happen when the user clicks the button. 
        finish(); 
        } 
       }) 
      .show(); 

    } 
+0

그렇게하기 위해 활동을 시작하지 않겠습니까? 위의 단계에서 AlertDialog를 보여줄 수있는 액티비티 쇼를 시작할 위치를 볼 수 있습니다. 문제는 응용 프로그램의 마지막 페이지를 불러오는 것입니다. 응용 프로그램이 앞으로 오지 않게하려면 어떻게합니까? – pcm2a

+0

흠 ... 그렇다면 솔직히 모르기 때문에 내가 어떻게 도울 수 있는지 잘 모르겠습니다. 코드를 사용해보고 시도해보십시오. AlertDialog를 팝업하고 원래 클래스/액티비티를 활성화하는 코드를 가진 다른 클래스를 참조 할 수 있습니다. 이렇게하면 신청서에 있던 마지막 페이지가 앞으로 나오지 않습니다. 또한 finish()를 사용할 수도 있습니다. 페이지를 종료하고 마지막 페이지로 돌아 가게합니다. – Kurty

관련 문제