2012-04-26 79 views
1

这个问题的解决方案是非常简单的:安卓:从第二届活动切换回第一个退出这两个

public void onUserLeaveHint() { // this only executes when Home is selected. 
     if(started){ 
      started=false; 
      recordTask.cancel(true); 
      } 
      this.finish(); 
      super.onUserLeaveHint(); 
     } 
    } 
} 

不幸的是我莫名其妙地评论这个错误在我的代码,也许我从什么地方抄了一遍从API

那:

调用作为活动生命周期的一部分时的活性是即将进入背景作为用户选择的结果。

因此,无论何时开始新的活动,主要进入后台并完成。

感谢您的帮助,无论如何。我的愚蠢的错误,只是忘了那种方法。 问题解决了。

原题:

我降低了第二个活动的代码,只给出一个结果回来了,它看起来像这样。 (当我取消注释整个代码时,第二个活动就起作用了,它只是一个文件浏览器,它应该给String返回路径,为了调试我使用这个直到我可以使它工作) 这两个活动都在清单中声明。

public class AndroidExplorer extends ListActivity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.olddata); 

     Intent sender=getIntent(); 
     Intent intent=new Intent(); 
     intent.putExtra("ComingFrom", "Hello"); 
     setResult(Activity.RESULT_OK, intent); 
     AndroidExplorer.this.finish(); 
    } 
} 

这是从第一项活动由名为:

Intent intent; 
intent = new Intent(firstactivity.this,AndroidExplorer.class); 
firstactivity.this.startActivityForResult(intent,0); 

,并将结果通过将收到:

@Override 
    public void onActivityResult(int requestCode,int resultCode,Intent data) 
    { 
    super.onActivityResult(requestCode, resultCode, data); 

    String extraData=data.getStringExtra("ComingFrom"); 
    Log.e("result", extraData); 
    go2startscreen(); 
    } 

不幸的是它不会返回到第一个活动,它只是关闭应用程序。

错误日志:

04-26 11:11:14.096: D/memalloc(32383): /dev/pmem: Mapped buffer base:0x51b3e000 size:17645568 offset:15556608 fd:53 
04-26 11:11:32.264: D/memalloc(32383): /dev/pmem: Mapped buffer base:0x52e66000 size:3686400 offset:1597440 fd:59 
04-26 11:11:32.584: D/memalloc(32383): /dev/pmem: Unmapping buffer base:0x51b3e000 size:17645568 offset:15556608 
04-26 11:11:32.584: D/memalloc(32383): /dev/pmem: Unmapping buffer base:0x52e66000 size:3686400 offset:1597440 
04-26 11:11:32.644: W/IInputConnectionWrapper(32383): showStatusIcon on inactive InputConnection 
04-26 11:11:32.644: W/IInputConnectionWrapper(32383): InputConnection = [email protected], active client = false 

这里是go2startscreen功能:

void go2startscreen(){ 
     setContentView(R.layout.startscreen); 
     appPosition = "startscreen"; 
     newRecord = (Button) this.findViewById(R.id.newRecord); 
     newRecord.setOnClickListener(this); 
} 

所以应该在R.layout.startscreen结束。调用go2startscreen工作,当我从第一个活动调用它。

+0

任何错误日志? – waqaslam 2012-04-26 09:08:04

+0

你可以发布go2startscreen()函数吗? – 2012-04-26 09:08:13

+0

可能很多东西,你可以从DDMS发布日志吗?可能会像在AndroidManifest.xml文件中声明其中一个活动一样简单。 – 2012-04-26 09:09:15

回答

1

检查resultCode为如果确定,然后做什么ü想要的 - 这样的:

@Override 
    public void onActivityResult(int requestCode,int resultCode,Intent data) 
    { 
    super.onActivityResult(requestCode, resultCode, data); 
if(resultCode==RESULT_OK){ 
    String extraData=data.getStringExtra("ComingFrom"); 
    Log.e("result", extraData); 
    go2startscreen(); 
    } 
    } 

希望它会帮助你..

+0

没有记录,我甚至在if语句前用Log.e(“res”,“”+ resultCode)尝试过 – user1222353 2012-04-26 09:25:38