2011-01-20 12 views
0

私は、自動起動時にホットエントリクライアントをエントリポイントで登録し、実際のエントリポイント(アプリケーションアイコンをクリックしたとき)にアプリケーションUIをプッシュするアプリケーションを持っています。BlackBerryアプリケーションの自動起動と代替エントリポイントのデフォルトアプリケーションアイコン

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

代替エントリポイント - プロジェクトのプロパティ: *プロジェクトのタイプ:代替ブラックベリーアプリケーションのエントリポイント *代替エントリポイント: "実際のプロジェクト" *引数がmain: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(); 
    } 
} 

答えて

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/

HTH

+0

あなたが提供されるリンクは、私は必要なソリューションを持っています。リチャードに感謝リチャード –

+0

@jasonridge私はまだそこに古い群衆を助けることができるうれしいです。私の古いコードで助けが必要な場合は、お気軽にお電話ください。 –

関連する問題