以前从未发生过这件事。
从一个Activity(MyActivity)开始另一个Activity(MainActivity):
Intent in = new Intent(MyActivity.this,MainActivity.class);
startActivity(in)
但是为什么我在MainActivity bot上按BACK会关闭MyActivity和MainActivity?
<application android:label="@string/app_name" android:icon="@drawable/ic_launcher">
<activity android:name="MyActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<!--You need it for the Service to work-->
<service android:name=".MyService"></service>
<activity android:name="zirco.ui.activities.MainActivity"
android:label="@string/ApplicationName"
android:configChanges="keyboardHidden|orientation">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http" />
<data android:scheme="https" />
</intent-filter>
</activity>
答案 0 :(得分:1)
您应该使用上下文来启动活动,假设代码在MyActivity.java
内,然后尝试:
Intent in = new Intent(this, MainActivity.class);
this.startActivity(in);
或者您可以尝试(如果代码在事件中,例如......):
Context ctx = this;
//stuff
Intent in = new Intent(ctx, MainActivity.class);
ctx.startActivity(in);
答案 1 :(得分:1)
我不是100%肯定你是否必须,但你可以覆盖onBackPressed()方法
@Override
public void onBackPressed(){
Intent intent = new Intent(getBaseContext() ,MainActivity.class);
startActivity(intent);
finish();
}
答案 2 :(得分:1)
这是因为zirco.ui.activities.MainActivity
处理后退按钮的方式以及启动它的方式。
您的清单未指定活动的启动模式,因此它使用standard
模式:新活动将添加到当前任务的活动堆栈中。
到目前为止一直很好,但zirco.ui.activities.MainActivity
调用.moveTaskToBack()
作为it's back button handling logic的一部分,这使整个任务 - 包括MyActivity
- 转到后面活动堆栈。
因此,您最好的选择是在清单中为android:launchMode="singleTask"
声明属性zirco.ui.activities.MainActivity
,或者以编程方式设置相应的Intent
标记:
Intent in = new Intent(MyActivity.this, MainActivity.class);
in.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(in);
当然,您也可以修改zirco
代码以使用super.onBackPressed()
代替moveTaskToBack()
,但我猜他们有理由推迟完成整个任务。