![](/img/trans.png)
[英]How to encapsulate a startActivityForResult in a Java class and get the onActivityResult on the Activity that called the method
[英]How startActivityForResult 2 Activity from 1 parent Activity and get onActivityResult when only 1 child is finisched
我有3個活動:
在A活動中,單擊按鈕時,打開B活動。
Intent i = new Intent(this, ActivityB.class);
startActivityForResult(i, 1);
在一個活動中有一個可運行的對象,在某些情況下會打開C活動
Intent i = new Intent(this, Activityc.class);
startActivityForResult(i, 2);
所有工作和在設備上我都看到C活動超過B活動而不是A活動,但是當我用this.finish();
關閉C活動時this.finish();
在Activity中,不會觸發onActivityResult()
事件。 僅當我也關閉B活動時,它才會被解雇。
關閉C活動並讓B活動打開時,我如何知道A活動?
每當您希望退出所有打開的活動時,都應按下一個按鈕,該按鈕將加載在應用程序啟動時運行的第一個活動,然后清除所有其他活動,然后完成最后剩余的活動。 為此,請在您的項目中應用以下代碼
Intent intent = new Intent(getApplicationContext(), FirstActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("EXIT", true);
startActivity(intent);
上面的代碼完成了除FirstActivity之外的所有活動。 然后我們需要完成FirstActivity的Enter在Firstactivity的oncreate中輸入以下代碼
if (getIntent().getBooleanExtra("EXIT", false)) {
finish();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.