所以,我有一个包含活动的包,当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);
}
}