首页 新闻 会员 周边

startActivity()出错,FC

0
悬赏园豆:50 [待解决问题]

我想在一个函数中实现跳转,代码如下:

public void showmap()
{

Intent jump2map = new Intent();
jump2map.setClass(this, Map.class);
// jump2map.setClass(RexseeCellLocation.this, Map.class);
getApplicationContext().startActivity(jump2map);
}

新的Acitvity已经在manifist中声明,但是跳转出错,强制退出

求大神指教啊,本人新手

错误提示:

应用程序 意外停止,请重试。

该死de无知的主页 该死de无知 | 初学一级 | 园豆:152
提问于:2014-07-23 09:44
< >
分享
所有回答(1)
0

不同的Activity是在一个Task Stack里面,当启动新的Activity的时候要指明是从哪个Context(Activity)跳转,这时候新启动的Activity会和原来这个Activity在一个Task Stack里面,所以在启动的时候,需要明确说明原来的上下文是什么,getApplicationContext()得到的是整个应用的上下文,这个通俗地说就是范围太大了,改成:

RexseeCellLocation.this.startActivity(jump2map);如果当前类就是RexseeCellLocation那this前面的就能省了。

还有一种解决方案,就是指明新的Activity需要一个新的Task Stack,要在startActivity前面加上:

jump2map.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

这两种方法都可以。

琴剑飘零 | 园豆:419 (菜鸟二级) | 2014-07-23 10:39
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册