我有一个调用活动的函数,但是没有调用活动,而是调用了MainActivity。从我可以看出,该呼叫没有什么异常。我可以在活动的源代码中始终遵循意图,然后发现意图就是所需的活动。
我创建意图:
Intent startNewActivityOpen2 = new Intent(this, com.assistek.ediary.TransitionLandscape.class);
setExtrasStartActivity(startNewActivityOpen2, extras);
这是我叫的方法:
protected void setExtrasStartActivity(Intent i, Bundle extras) {
// copy over all extras
if (extras != null) {
if (!extras.isEmpty()) {
i.putExtras(extras);
}
}
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
//I can see here that the the intent is correct
startActivity(i);
finish();
}
Logcat:
12-10 19:09:56.041 2857-2857 / com.assistek.ediary D / Base活动:**********暂停com.assistek.ediary.TransitionLandscape类 **********暂停导航:是 **********恢复类com.assistek.ediary.TransitionLandscape **********暂停类com.assistek.ediary.TransitionLandscape **********暂停导航:false 12-10 19:09:56.061 539-9188 /? I / ActivityManager:从pid 0开始u0 {act = android.intent.action.MAIN cat = [android.intent.category.HOME] flg = 0x10000000 cmp = com.assistek.util.homelauncher / .HomeLauncherActivity} 12-10 19:09:56.181 2857-2857 / com.assistek.ediary D / Base活动:**********焦点:错误活动:类com.assistek.ediary.TransitionLandscape 12-10 19:09:56.191 1002-1006 /? D / dalvikvm:GC_CONCURRENT释放479K,释放12%释放7739K / 8708K,暂停3ms + 3ms,总计34ms 12-10 19:09:56.191 539-22740 /? I / ActivityManager:从pid开始u0 {act = android.intent.action.MAIN cat = [android.intent.category.LAUNCHER] flg = 0x10000000 pkg = com.assistek.ediary cmp = com.assistek.ediary / .Home} 1002 12-10 20:19:49.371 1002-1006 /? D / dalvikvm:GC_CONCURRENT释放842K,释放11%释放7767K / 8708K,暂停3ms + 1ms,总计48ms 12-10 20:19:49.501 539-620 /? D / dalvikvm:GC_FOR_ALLOC释放241K,释放19%释放16643K / 20352K,暂停58ms,总计59ms 12-10 20:19:49.501 539-620 /? I / dalvikvm-heap:将堆(frag情况)增加到16.531MB以分配251120字节 12-10 20:19:49.561 539-620 /? D / dalvikvm:GC_FOR_ALLOC释放了4K,19%释放了16884K / 20600K,暂停了56ms,总计56ms 12-10 20:19:49.621 539-620 /? D / dalvikvm:GC_FOR_ALLOC释放了262K,20%释放了16621K / 20600K,暂停了58ms,总计58ms 12-10 20:19:49.621 539-27162 /? I / ActivityManager:moveTaskToBack:5106 12-10 20:19:49.641 539-22745 /? I / ActivityManager:从pid 0开始u0 {act = android.intent.action.MAIN cat = [android.intent.category.HOME] flg = 0x10000000 cmp = com.assistek.util.homelauncher / .HomeLauncherActivity} 12-10 20:19:49.661 6240-6240 / com.assistek.ediary D / Base活动:**********停止虚假导航
为什么会调用Home Launcher?
编辑:如果我调用另一个活动,则显示正确的活动。
编辑:这是我的清单
<activity
android:name=".TransitionLandscape"
android:configChanges="orientation"
android:label="@string/app_name"
android:launchMode="singleTask"
android:noHistory="true"
android:screenOrientation="landscape"
android:windowSoftInputMode="stateHidden">
</activity>
答案 0 :(得分:0)
com.assistek.ediary
是您应用的程序包名称吗?
好像您正在尝试调用其他以HomeActivity作为启动器活动的应用程序的活动,因此调用了其Home活动。
Intent secondActivityIntent= new Intent(getApplicationContext(), SecondActivity.class);
intent.putExtra("myKey", "MyValue");
context.startActivity(secondActivityIntent);
答案 1 :(得分:0)
我不能百分百确定这是否是正确的答案,但值得一试
<activity
android:name="com.assistek.ediary.TransitionLandscape"
android:configChanges="orientation"
android:label="@string/app_name"
android:launchMode="singleTask"
android:noHistory="true"
android:screenOrientation="landscape"
android:windowSoftInputMode="stateHidden">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
并确保您要覆盖此内容,而不要覆盖其他任何内容,
@Override
protected void onCreate(Bundle savedInstanceState) {
}