Android 在Resume上搜索长按通话,有时搜索单独的活动

Android 在Resume上搜索长按通话,有时搜索单独的活动,android,android-intent,Android,Android Intent,因此,我有一个包,其中包含一个在启动android.intent.action.SEARCH\u LONG\u PRESS(LongPressSearchKey.java)时运行的活动。调用LongPressSearchKey.java时,会调用另一个活动来创建和保存文件。同一个包还有第三个活动,显示所有保存文件的列表(AppWindow.java) 情况是这样的:当调用SEARCH_LONG_PRESS活动时,我希望屏幕上的焦点不要改变。我通过在LongPressSearchKey.java逻

因此,我有一个包,其中包含一个在启动android.intent.action.SEARCH\u LONG\u PRESS(LongPressSearchKey.java)时运行的活动。调用LongPressSearchKey.java时,会调用另一个活动来创建和保存文件。同一个包还有第三个活动,显示所有保存文件的列表(AppWindow.java)

情况是这样的:当调用SEARCH_LONG_PRESS活动时,我希望屏幕上的焦点不要改变。我通过在LongPressSearchKey.java逻辑完成时调用finish()成功地实现了这一点。它在一瞬间聚焦,然后结束,回到我已经在做的事情上。但是,如果以前调用过AppWindow.java中的onCreate()方法,则任何后续的SEARCH\u LONG\u PRESS操作也会(无明显原因)调用AppWindow.java的onResume()方法。这将显示已保存文件的列表,我不想看到这些文件。这种行为有内在的原因吗?如果是这样的话,那么我想我必须在SEARCH\u LONG\u PRESS启动时杀死AppWindow.java

基本代码如下所示,为了便于故障排除,我对其进行了精简。即使使用这种最小的逻辑,AppWindow.java仍然会被SEARCH\u LONG\u PRESS调用

AndroidManifest.xml

...

    <application
        android:icon="@drawable/app_icon"
        android:label="@string/app_name"
        android:debuggable="true" >

    <activity
        android:name=".LongPressSearchKey"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.Translucent.NoTitleBar"
        android:stateNotNeeded="true" >
        <intent-filter>
            <action android:name="android.intent.action.SEARCH_LONG_PRESS" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>

    <activity
        android:name=".AppWindow"
        android:label="@string/app_name" >
    </activity>

...
AppWindow.java

...

public class AppWindow extends ListActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }
}

我正要发布一个非常类似的问题。如果你解决了这个问题,你能分享一下你的解决方案吗?我将不得不使用onCreate、onPause和onResume中的“标记”来控制SEARCH\u LONG\u PRESS活动,这样我就知道以前发生了什么(如果有的话)——但我忍不住想一定有更好的实现/解决方案。提前谢谢。我希望我能告诉你问题已经解决了,但是我刚刚在单独的活动(AppWindow.java)中调用了finish()方法。这是一个相当丑陋的解决方案。也许如果你发布你的问题,那么有人会回应。
...

public class AppWindow extends ListActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }
}