android响应url没有活动

时间:2013-09-30 23:57:08

标签: android url browser

我有一个分为前端和后端的应用程序。 (很像MVC)。 我的应用程序使用特殊的网址方案,如“testscheme”。 当用户点击testscheme://链接时我想通知后端,后端应设置内部状态并启动匹配活动。

Intercepting links from the browser to open my Android appHow to implement my very own URI scheme on Android涵盖了我的部分问题,但并不完全。 他们都指向我向<intent-filter>添加<activity>我想对该计划作出反应。但是在这一点上我不知道要启动什么Activity,即使我将以一种独特的方式格式化我的URL,我想在启动Activity之前保存内部状态。

我的第一次尝试是使用与<intent-filter>完全相同的broadcastReciever,但这不起作用。

这是我的清单的相关部分:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.testurls"
android:versionCode="2"
android:versionName="0.1" >

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="8" />

    <receiver android:name=".backend.BackendController" >
        <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="testurls" />
        </intent-filter>
    </receiver>
</application>

</manifest>

这是我接收器的一部分

package com.example.testurls.backend;

public class BackendController extends BroadcastReceiver implements BackendControllerInterface, GameStateLoadedListener, UrlsLoadedListener {
    @Override
    public void onReceive(Context context, Intent intent) {
    Uri data = intent.getData();    
    if(data.getHost()=="maillink"){
        this.proceedlevel();
        this.frontend.MailReturned();
    }else if(data.getHost()=="level1finished"){
        this.proceedlevel();
        this.frontend.level1Finished();
    }
}   
}

0 个答案:

没有答案