SEARCH_LONG_PRESS有时会调用onResume进行单独的活动

时间:2012-03-29 20:47:23

标签: android android-intent

所以,我有一个包含活动的包,当android.intent.action.SEARCH_LONG_PRESS被触发时(LongPressSearchKey.java)。调用时,LongPressSearchKey.java调用另一个活动来创建和保存文件。同一个包有第三个活动,显示所有已保存文件的列表(AppWindow.java)。

情况如下:当调用SEARCH_LONG_PRESS活动时,我希望屏幕上的焦点不要改变。我已经通过在LongPressSearchKey.java逻辑完成时调用finish()成功完成了这个。它会在瞬间获得焦点,然后结束,返回到我已经在做的任何事情。但是,如果先前已调用AppWindow.java中的onCreate()方法,则任何后续SEARCH_LONG_PRESS操作也将(无明显原因)调用AppWindow.java的onResume()方法。这会显示已保存文件的列表,我不想看到它们。这种行为有内在原因吗?如果是这样,那么我想在SEARCH_LONG_PRESS被解雇时我将不得不尝试杀死AppWindow.java。

基本代码如下所示,我将其拆除以进行故障排除。即使使用这个最小逻辑,AppWindow.java仍然会被SEARCH_LONG_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>

...

LongPressSearchKey.java

...

public class LongPressSearchKey extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        MyClass.makeFile(this);
        finish();
    }
}

AppWindow.java

...

public class AppWindow extends ListActivity {

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

0 个答案:

没有答案