Sample code
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn = (Button)findViewById(R.id.button);
btn.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, MainActivity.class );
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP );
intent.putExtra("aaa",1);
intent.putExtra("bbb",2);
intent.putExtra("ccc",3);
startActivity(intent);
}
}
);
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
Log.d("easy", "onNewIntent called");
if ( null != intent){
int defaultValue = 0;
Log.d("easy", "aaa : "+intent.getIntExtra("aaa",0));
Log.d("easy", "bbb : "+intent.getIntExtra("bbb",0));
Log.d("easy", "ccc : "+intent.getIntExtra("ccc",0));
}
}
}
Activity가 foreground로 동작하고 있을 때, 해당 Activity로 startActivity를 호출할 경우 onNewIntent Callback이 호출된다.
주의) addFlag를 추가하지 않으면 실행되지 않음
결과 :
09-13 17:21:41.448 7123 7123 D easy : onNewIntent called
09-13 17:21:41.448 7123 7123 D easy : aaa : 1
09-13 17:21:41.448 7123 7123 D easy : bbb : 2
09-13 17:21:41.448 7123 7123 D easy : ccc : 3
'android' 카테고리의 다른 글
How to resolve OnSSLCertificateError from chromium (0) | 2019.04.02 |
---|---|
platform key Android studio에서 사용하기 (0) | 2018.12.03 |
Android framework에서의 KeyEvent 처리 순서 (0) | 2018.09.04 |
android power mode 와 linux power mode 비교 (early suspend) (0) | 2018.08.31 |
property read using reflection java (0) | 2018.08.30 |