0

hotspotclient を別のエントリ ポイントで自動起動し、実際のエントリ ポイント (アプリケーション アイコンをクリックしたとき) に登録してアプリケーション UI をプッシュするアプリケーションがあります。

実際のエントリ ポイント - プロジェクト プロパティ: * プロジェクト タイプ: BlackBerry アプリケーションおよび * 追加されたアプリケーション アイコン

代替エントリ ポイント - プロジェクト プロパティ: * プロジェクト タイプ: 代替 Blackberry アプリケーション エントリ ポイント * 代替エントリ ポイント: 「実際のプロジェクト」 * メインに渡される引数: wificlient * システム モジュール チェック済み * 自動起動チェック済み * およびアイコンの追加なし

デバイスでアプリケーションを実行するとappln、代替エントリ ポイントが起動し、ホットスポット クライアントが起動して登録されますが、バックグラウンド アプリケーション リストにプロジェクト名 (.jdp ファイル名) のデフォルト アイコンが追加されます。別のエントリ ポイントにアイコンを表示したくありません。

ダウンロード フォルダーからアプリケーション アイコンをクリックすると、アプリが UI 画面をプッシュし、バックグラウンド アプリケーション リストが表示されると、指定されたアプリケーション名でアプリケーション アイコンが表示され、別のエントリのプロジェクト名でデフォルト アプリケーション アイコンが表示されます。点。では、このデフォルト アイコンを無効にして、代替エントリ ポイントのバックグラウンド アプリケーション リストに表示するにはどうすればよいでしょうか。

何か不足している場合はお知らせください。これを手伝ってください。

これが私のコードです:

class WiFiApplication extends UiApplication
{
    public static void main(String[] args)
    {
        if( args != null && args.length > 0 &&
            args[0].equals("wificlient"))
        {
            //Register the Hotspotclient
            AddRemoveClient.registerHotspotClient();
            WiFiApplication app = new WiFiApplication();
            app.enterEventDispatcher();
        }
        else
        {
            new WiFiApplication().pushUI();
        }
    }

    WiFiApplication() {
    }

    pushUI()
    {
        pushScreen(new WLANScreen());
        enterEventDispatcher();
    }
}
4

1 に答える 1

2

私は代替エントリ ポイントを初めて使用するため、これがあなたの質問に完全に答えるかどうかはわかりませんが、代替エントリ ポイントを使用しないバックグラウンド アプリを作成し、あなたと同じようにフォアグラウンドに移動します.

私の main() メソッドでは、コンストラクターを直接呼び出しません。アプリケーションにシングルトン パターンを強制する getInstance() メソッドがあります。つまり、既にバックグラウンドで実行されている場合は、前面に表示されます。 .

/**
 * Returns a Demo application. If Demo has not been started yet, it is
 * started. If it is already running, this method returns the running
 * instance. In this way, only one copy of the Demo application can ever
 * be running.
 * 
 * @return a running instance of the {@link DemoApp}
 */
public static DemoApp getInstance()
{
    // check if Demo is already running in the background
    RuntimeStore runtimeStore = RuntimeStore.getRuntimeStore();
    DemoApp runningInstance = (DemoApp) runtimeStore
        .get(GlobalConstants.Demo_APPLICATION_INSTANCE_ID);

    // if not running, create the app, and store it as an object in the
    // RuntimeStore
    if (runningInstance == null)
    {
        runningInstance = new DemoApp();
        runtimeStore.put(GlobalConstants.Demo_APPLICATION_INSTANCE_ID,
            runningInstance);
    }

    return runningInstance;
}

Demo_APPLICATION_INSTANCE_ID を com.demo.app (一意の名前) の長いハッシュとして定義します。

これにより、実行中のアプリのコピーが RuntimeStore に保存されます。

最後に、バックグラウンド アプリをタスク スイッチャーから非表示にする部分は実装しませんでした。切り替えられるようにしたかったからです。しかし、それがあなたがやろうとしていることである場合は、次のリンクにアクセスしてください: http://davidjhinson.wordpress.com/2010/08/24/hiding-blackberry-background-processes/

h番目

于 2011-04-12T14:38:37.840 に答える