活动

问题描述:

之间的互动,我开始一个活动,从使用意图的主要一个:活动

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); 

如何编辑从活动的主要活动UI开始白衣意图是什么? 我怎么知道我什么时候从第二次活动回到主要活动?我试图覆盖onResume和onStart方法,但应用程序甚至没有启动。我试图在调用应用程序崩溃时重写onRestart方法。

@Override 
protected void onRestart() { 
    if(call_back == 1) 
     Toast.makeText(getApplicationContext(), "asd", Toast.LENGTH_LONG).show(); 
} 

call_back变量在次要活动启动时设置为1。

感谢,马蒂亚

尝试startActivityForResult而不是它给你一个回调到您的第一项活动。除非绝对必要,否则也不要使用应用程序上下文,而是使用活动上下文。此外,当您从活动类调用某些方法并像onRestart或OnStop或onResume一样覆盖它们时,您必须先在方法内部执行super.onResume(),确保应用程序生命周期不被破坏。

+0

谢谢,现在的作品!你是否也知道如何解决第一个问题?我在编辑他的视图的主要活动中创建了一个静态方法,即从辅助活动调用主要活动ui的sam ethat,但是当我从辅助活动调用i时,它会在辅助活动中显示一段视图已在主要活动中更新。为什么?谢谢! – pindol 2012-02-13 16:19:07

+0

http://answers.oreilly.com/topic/2692-android-programming-understanding-the-activity-life-cycle/ – L7ColWinters 2012-02-13 17:30:03

尝试用

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. 

} 

这听起来像也许你想用startActivityForResult(Context,Intent)来调用你的第二个活动。当你这样做时,你的第二个活动可以给调用它的活动返回一个值,并且你可以决定从那里做什么。第二项活动完成后,您的第一项活动将收到回拨。这告诉你的第一个活动,第二个活动已经完成,并通过了第二个活动发生的结果。

它在这里的Android的文档解释:http://developer.android.com/reference/android/app/Activity.html#startActivityForResult(android.content.Intent,%20int