活动未被调用

时间:2018-12-30 02:20:56

标签: android android-intent

我有一个调用活动的函数,但是没有调用活动,而是调用了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>

2 个答案:

答案 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) {
}