通过覆盖startActivity(Intent)无法通过超级活动启动另一个活动

时间:2015-07-08 21:02:20

标签: java android android-intent android-activity

我有一个活动类A,它会覆盖startActivity(intent)。基本上它只是检查意图,然后通过调用super.startActivity(intent)将其传递给超级活动。此活动位于模块中。

现在我创建了一个项目并添加了这个模块。我在这个名为B的项目中有一个活动类,它扩展了A。现在B在同一个项目中调用活动C。如果B未延伸A,则可以致电C。但无论何时它延伸A,都没有任何反应。可能是什么问题。我试图在超级活动A中打印当前类并调用类,我可以看到它的意图是正常的。但是,每当我想通过C通过此方法调用A时,都不会发生任何事情。

这是我的代码段。

public  class A extends Activity{


    @Override
    public void startActivity(Intent intent)
    {



        //do something here. Not modifying the intent


        super.startActivity(intent);
      }
}

在活动B中,

public class B extends A 
{
  //somewhere in a button handler
  Intent intent = new Intent(B.this, C.class);
  startActivity(intent);
}

我可以从代码中看到startActivity内的A确实被调用了。但当我将意图传递给超级时,没有任何反应。但如果B没有扩展A,一切正常。需要注意的是,A是一个库模块。

在查看logcat时我没有看到任何错误,

D/TaskPersister(  826): removeObsoleteFile: deleting file=279_task.xml
I/Tasker_Activity( 1181): Inside tasker activity
D/audio_hw_primary(  348): out_set_parameters: enter: usecase(1: low-latency-playback) kvpairs: routing=2
D/audio_hw_primary(  348): select_devices: out_snd_device(2: speaker) in_snd_device(0: none)
D/msm8974_platform(  348): platform_send_audio_calibration: sending audio calibration for snd_device(2) acdb_id(15)
E/ACDB-LOADER(  348): Error: ACDB AFE returned = -19
D/audio_hw_primary(  348): enable_snd_device: snd_device(2: speaker)
D/audio_hw_primary(  348): enable_audio_route: apply and update mixer path: low-latency-playback speaker
D/audio_hw_primary(  348): disable_audio_route: reset and update mixer path: low-latency-playback speaker
D/audio_hw_primary(  348): disable_snd_device: snd_device(2: speaker)

但我不知道这意味着什么E/ACDB-LOADER( 348): Error: ACDB AFE returned = -19

需要注意的是,我将超级活动A放在应用程序项目中,而不是库,但结果是相同的。

0 个答案:

没有答案