일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Android
- javascript
- dovecot
- WebView
- C#
- 안드로이드 gcm
- html5
- php 시큐어코딩
- android 효과음
- soundpool
- C# IO
- FCM
- 설치
- mysql
- xe
- PHP
- php 취약점
- 자동 생성
- 자바스크립트
- curl
- Mail Server
- chart.js
- roundcube
- 안드로이드 푸쉬
- 안드로이드
- 폼메일
- not working
- UML
- 우분투
- 안드로이드 푸시
- Today
- Total
그러냐
PendingIntent Activity가 이미 실행되어 있는 경우 본문
PendingIntent 사용시 대상이 되는 Activity가 이미 실행되어 있는 경우에
실행 중인 Activity가 업데이트 되도록 하기 위해서는
PendingIntent send flag에 PendingIntent.FLAG_UPDATE_CURRENT를 사용하여야 하며
수신하는 Activity에서는 onNewIntent()를 override하여 전달받은 intent를 사용하면 된다.
[AlertManager.java]
private void sendAlertMessage(){
Intent popupIntent = new Intent(mContext, AlertMessageDialog.class);
popupIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_CLEAR_TOP
| Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
| Intent.FLAG_ACTIVITY_SINGLE_TOP);
popupIntent.putExtra(ExtraDefine.EXTRA_DATABASE_ID, mCheckItem.getDatabaseID());
popupIntent.putExtra(ExtraDefine.EXTRA_PLAY_ALARM, true);
popupIntent.putExtra(ExtraDefine.EXTRA_ALERT_MYADDRESS, mCheckItem.getMailAddress());
//popupIntent.putExtras(getAlertMessageBundle());
PendingIntent pi = PendingIntent.getActivity(mContext, 0, popupIntent, PendingIntent.FLAG_UPDATE_CURRENT);
try{
pi.send();
}catch(Exception e){
e.printStackTrace();
}
}
[AlertMessageDialog.java]
@Override
protected void onNewIntent(Intent intent) {
Trace.d("onNewIntent");
updateScreenFromIntent(intent);
super.onNewIntent(intent);
}
출처: http://ocsoosoo.tistory.com/73 [옥수수 농장]
'android' 카테고리의 다른 글
SoundPool play not working (LG폰이 안되는줄) (0) | 2017.07.05 |
---|---|
현재 실행 중인 액티비티 얻어오기. (0) | 2017.06.22 |
PendingIntent flag 의 의미 (0) | 2017.06.22 |
안드로이드 stopservice nullpointerexception (0) | 2017.06.21 |
Android – Service 중복 실행 문제 해결 (0) | 2017.06.21 |