2013-07-14 2 views
1

30 분마다 알림/알림을 호출해야하는 애플리케이션이 있습니다.브로드 캐스트 수신기 및 호출 서버 기능 및 팝업

나는 응용 프로그램이 닫혀있는 경우

1과 같은 기능, 그것은, 응용 프로그램을 열고 대화 상자를 호출합니다. 클릭하면 serverFunction이 호출되고 MainActivity가 실행 중이면 해당 UI가 업데이트됩니다.

2 앱이 이미 열려 있으면 대화 상자를 엽니 다. 클릭하면 serverFunction이 호출됩니다. MainActivity가 맨 위에있을 수도 있고 그렇지 않을 수도 있기 때문에 UI를 업데이트하거나하지 마세요. 문맥 활동 상황이 아니므로 내 MainActivity.class 여기

private void callNotification() 
    { 
     AlarmManager service = (AlarmManager) getSystemService(Context.ALARM_SERVICE); 


     Intent i = new Intent(this, AlarmReceiver.class); 
     PendingIntent pending = PendingIntent.getBroadcast(this, 0, i,PendingIntent.FLAG_CANCEL_CURRENT); 

     Calendar time = Calendar.getInstance(); 
     time.setTimeInMillis(System.currentTimeMillis()); 
     time.add(Calendar.SECOND, Constants.TIME_CONSTANT); 

     service.set(AlarmManager.RTC_WAKEUP ,time.getTimeInMillis(), pending);   
    } 



    public class AlarmReceiver extends BroadcastReceiver 
    { 
     @Override 
     public void onReceive(final Context context, Intent intent) 
     { 

       } 
} 

문제에

, 나는 onReceive에서 대화 상자를 넣을 수 없습니다. 어떻게하면 응용 프로그램이 열립니다, 어떻게 지금 위의 기능을 구현하는 가정합니다. 당신이 당신의 활동 당신이 대화 상자를 열 수 있습니다에 일단

Intent i = new Intent(context, AlertActivity.class); 
i.setFlags 
startActivity(i); 

: 당신의 onReceive 곳이에

+0

알림 표시 줄을 사용하는 것이 좋습니다. – Flynn81

+0

예 첫 번째 경우에는 알림을 사용하지만 사용자가 앱 안에있을 때 수신자가 메시지를받는 경우 어떻게 사용자가 응용 프로그램의 모든 활동을 수행 할 수 있다고 가정하고 함수를 호출 할 수 있습니까? iPhone 개발에 대한 아이디어가 있다면 AppDelegate에서이 작업을 수행 할 수 있습니다. –

답변

0

는 활동을 호출합니다. 경고를 표시하는 데있어 주된 활동과 다른 활동을 사용하는 것이 좋습니다. 이는 디자인 관점에서 의미가 있으며 구현이 더 쉬워지기 때문입니다. 활동을 대화 상자처럼 보이게 만들 수 있다는 것을 기억하십시오 ...

관련 문제