4

私はオンラインで周りを見回し、Androidライセンス(LVL)ライブラリがいかに遅いかについて不平を言う他のいくつかの投稿を見ましたが、解決策はありません。HTC Thunderbolt(新品の電話)では、テストアプリの起動時間が3〜5秒以上遅れます。

このライブラリを非同期で呼び出す経験やアイデアはありますか?他の解決策?基本的に提供されているサンプルコードを使用しています。本当に厄介な部分は、この単純なライセンスチェックが行われている間、アプリ全体がフリーズすることです。それは本当に悪いことです。

ありがとう!

4

3 に答える 3

0

Nitwit はそれを理解しました: licenseCheck は非同期です。

それを起動して、次の数行のコードでアプリを開きます。応答が到着すると、アプリが中断されます(つまり、ライセンスが無効な場合にダイアログが表示されるように設定した場合、アプリは読み込みが開始され、ダイアログが表示され、すべてがブロックされます)。

「許可しない」状況に続くすべてのコードのフォローアップに、finish() を必ず含めてください。

素晴らしい結果: アプリの読み込み時間が 4 ~ 5 秒短縮されました。

于 2012-07-25T14:27:28.630 に答える
-1

Activity に実装LicenseCheckerCallbackし、次のように呼び出します。

mLicenseChecker = new LicenseChecker(this, new MyPolicy(this, new AESObfuscator(getSalt(), getPackageName(), getDeviceId())), PUBLIC_KEY);
mLicenseChecker.checkAccess(new MyCheckerCallback());
mHandler = new Handler();

次に、ライセンスが無効な場合はハンドラーに投稿しますMyCheckerCallback

public void dontAllow() {
    if (isFinishing()) {
        return; //don't update UI when app is finishing
    }
    mHandler.post(new Runnable() {
    public void run() {
        //show toast message stating license is invalid
        //redirect user to Market
        //call finish()
        }
    });
}
于 2011-08-21T16:50:26.837 に答える