如何阻止处理文本时Android应用自动打开界面?
解决Android PROCESS_TEXT按钮点击后跳转应用界面的问题
这问题我之前也碰到过!默认情况下,处理PROCESS_TEXT的Activity会以普通界面启动,所以才会跳转到你的应用里。要搞定这个,只需要让这个Activity变成透明的,并且处理完文本就立刻关闭它就行,具体改法如下:
修改AndroidManifest.xml
给你的ProcessTextActivity添加透明主题,这样启动时不会显示可见界面:
<activity android:name=".ProcessTextActivity" android:label="CHANGE ME" android:theme="@android:style/Theme.Translucent.NoTitleBar"> <!-- 新增:设置透明主题 --> <intent-filter> <action android:name="android.intent.action.PROCESS_TEXT" /> <category android:name="android.intent.category.DEFAULT" /> <data android:mimeType="text/plain" /> </intent-filter> </activity>
修改ProcessTextActivity.java
在处理完文本后调用finish(),立即关闭Activity:
public class ProcessTextActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); CharSequence text = getIntent() .getCharSequenceExtra(Intent.EXTRA_PROCESS_TEXT); System.out.println(text); // for testing finish(); // 新增:处理完成后关闭Activity } }
原理说明
- 透明主题让Activity在启动时不会渲染任何可见的UI,用户完全感知不到这个Activity的存在
finish()方法会在文本处理完成后立刻销毁Activity,避免了界面停留或跳转的问题
内容的提问来源于stack exchange,提问作者cpuSonicatt
相关产品推荐
相关产品推荐

