我实现了filter-activity来从电子邮件中的url打开我的应用程序并将url传递给它。它在第一条路上工作正常:我打开电子邮件,触摸电子邮件中的链接,它询问我使用哪个应用程序,我选择我的应用程序,它很顺利。
然而,现在当我再次尝试打开Mail应用程序时,要打开其他电子邮件,Mail应用程序不会让我看到电子邮件,它只是将我直接带到我的应用程序而没有来自电子邮件的任何数据。我必须强制退出我的应用程序才能再次打开邮件。
我试用了我的应用程序的GMail应用程序,它没有这样做,它按预期工作,即带我总是看电子邮件。我想知道是否有一些我错过的东西,所以Android Mail应用程序搞砸了。
感谢。
这里是清单文件的过滤器:
< intent-filter>
< action android:name="android.intent.action.VIEW" />
< category android:name="android.intent.category.DEFAULT" />
< category android:name="android.intent.category.BROWSABLE" />
< data android:scheme="http" android:host="myhost.com"/>
< /intent-filter>
in the app i pull url like this:
@Override public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = getIntent();
Uri uri = intent.getData();
if (uri!=null){
String msgFromUrl=intent.getDataString();
try {
msgFromUrl = java.net.URLDecoder.decode(msgFromUrl, "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
if(msgFromUrl.length()>0){
Toast.makeText(this, msgFromUrl, Toast.LENGTH_LONG).show();
}
}
...
}