我使用Intent从主要活动开始活动:
Intent i = new Intent(getApplicationContext(), InfoChiamata.class);
i.putExtra("codice_cliente", codice_cliente[tv_clicked_id]);
i.putExtra("descrizione_chiamata", descrizione_chiamata[tv_clicked_id]);
startActivity(i);
如何编辑从Intent开始的活动开始的主要活动ui? 我怎么知道我什么时候从第二个活动回到主要活动?我试图覆盖onResume和onStart方法,但应用程序甚至没有启动。我试图在调用应用程序崩溃时覆盖onRestart方法。
@Override
protected void onRestart() {
if(call_back == 1)
Toast.makeText(getApplicationContext(), "asd", Toast.LENGTH_LONG).show();
}
当辅助活动启动时,call_back变量设置为1。
谢谢,Mattia
答案 0 :(得分:8)
尝试使用startActivityForResult,它会为您提供第一个活动的回调。也不要使用应用程序上下文,除非绝对必要,否则请使用活动上下文。此外,当您从活动类调用某些方法并覆盖它们时,如onRestart或onStop或onResume,您必须首先在方法内部执行super.onResume(),确保应用程序生命周期不会中断。
答案 1 :(得分:2)
尝试使用
开始新的活动startActivityForResult(i, 1);
然后,在您的主要活动中,使用此代码捕获用户离开第二个活动并返回第一个活动时:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
//your request code will be 1 since you started the
//activity with result 1. Your result code will be detemined
//by if the activity ended properly.
}
答案 2 :(得分:1)
听起来好像你想使用startActivityForResult(Context,Intent)来调用你的第二个活动。执行此操作时,您的第二个活动可以向调用它的活动返回一个值,您可以决定从那里做什么。当第二个活动完成后,您的第一个活动将收到回调。这告诉您的第一个活动,第二个活动已完成,并传递第二个活动中发生的结果。
此处的Android文档中对此进行了解释:http://developer.android.com/reference/android/app/Activity.html#startActivityForResult(android.content.Intent,%20int)