2011-07-06 2 views
1

내 응용 프로그램에서 AlarmManager를 사용하고 있습니다. 알람이 발생하는 동안 사용자에게 경고를 표시하려고합니다. AlertDialog를 사용했지만 오류가 발생합니다. 이 문제를 어떻게 해결할 수 있습니까? 그리고 경고음과 진동을 넣고 싶습니다. 모든 링크 또는 코드. 아래처럼 BroadcastReciver 다른 활동 클래스를 호출AlarmManager에 문제가 있습니까?

안녕 당신에 AlertDialog BroadcastReceiver에서 사용 할 수

public class AReceiver extends BroadcastReceiver{ 

AlertDialog alertDialog; 

public void onReceive(Context context, Intent intent) { 

    alertDialog = new AlertDialog.Builder(this).create(); // Error here: The constructor AlertDialog.Builder is undefined. 
    alertDialog.setTitle("title"); 

    alertDialog.setButton("OK", new DialogInterface.OnClickListener() { 

      public void onClick(DialogInterface dialog, int which) { 
      return; 
     } }); 

} 
} 
+0

@@ :

는 코드를 아래와 같이 수정

? – Nikhil

+0

@@ realuser이 답변을 찾으면 맞을 것입니다. 그러면 다른 사람에게 도움이 될 것입니다. – Nikhil

답변

4

....

Intent myIntent = new Intent(context, AlarmActivity.class); 
myIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
context.startActivity(myIntent); 

그리고이 클래스에서는 경고 대화 상자를 사용했습니다.

+0

Nik에게 감사드립니다. 매우 유용했습니다. – realuser

0

이 문제를 해결하는 방법에 대한 주요 아이디어를 보여 드릴 수 있습니다.

  • AlarmManager에서 사용하는 BroadcastReceiver는 정적 컨텍스트가있는 정적 클래스입니다.

  • AlertDialog는 정적 컨텍스트 대신 비 정적 컨텍스트에서 실행해야합니다.

이 문제는 두 가지 해결책이 있습니다.

그래서, 당신은에 AlertDialog를 사용할 수 있습니다.

0

는 늦은하지만 누군가를 위해, 어쩌면 아직도 유용한 : 당신이 대답을 확인했다 realuser

alertDialog = new AlertDialog.Builder(context).create(); // Now The constructor AlertDialog.Builder is defined. 
관련 문제