我想在一个函数中实现跳转,代码如下:
public void showmap()
{
Intent jump2map = new Intent();
jump2map.setClass(this, Map.class);
// jump2map.setClass(RexseeCellLocation.this, Map.class);
getApplicationContext().startActivity(jump2map);
}
新的Acitvity已经在manifist中声明,但是跳转出错,强制退出
求大神指教啊,本人新手
错误提示:
应用程序 意外停止,请重试。
不同的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);
这两种方法都可以。