問題タブ [android-task]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
759 参照

android - Android: ホーム ランチャー アクティビティは、ホームを初めて押したときにのみ新しいタスクに再作成されます。

ユーザーがアプリを離れないようにしたい。ホームランチャーのアクティビティ/アプリケーションを介してこれを達成しようとしていますが、Android の動作がわかりません。初めて HOME を押すと、既存のアクティビティをフォアグラウンドに移動するのではなく、常に新しいタスクに新しいアクティビティが作成されます。HOMEを2回押しても何も起こりません。例を参照してください:

ログイン アクティビティ (A) と設定アクティビティ (B) があります。BはAから開きます。Aはランチャー(LAUNCHER、DEFAULT、HOMEカテゴリ)に設定されています。

  1. AがBを開く
    • タスク T1: A -> B
  2. 別の A が新しいタスクに作成されます (なぜですか?):
    • T1: A -> B
    • T2:あ
  3. A が B を開く (タスク T2)
    • T1: A -> B
    • T2: A -> B
  4. 何も起こらない、なぜ?

A のlaunchModesingleTopsingleTask、またはstandardのいずれかの場合、同じ動作が得られます。singleInstanceではA は 1 つしかありませんが、B は T1 で単独になり、私はそれを望んでいません。

常に新しいタスクが作成されるのはなぜですか? すべてのインテント フラグには、常にFLAG_ACTIVITY_NEW_TASKフラグが設定されています。なぜアンドロイドはそれをするのですか?

ここまたはここに投稿されたのと同じ動作ですか? Androidが新しいタスクを作成するため、Aが常にルートになるため、そのソリューションを使用できません。(または、これが 2 番目のインスタンスであることを確認するにはどうすればよいですか?)

B を一人にしたくないので、ここに投稿されたsingleInstanceを使用できません(A が表示されている場合、それは唯一のアクティビティとタスク (ログイン目的) でもあります)。ActivityManager を介して他のすべてのタスクを削除しようとしましたが、SDK >= 21 の場合、最小は 16 です。getAppTasks()

FLAG_ACTIVITY_BROUGHT_TO_FRONT フラグを使用する意図がないため、このソリューションを使用することさえできません。FLAG_ACTIVITY_RESET_TASK_IF_NEEDED フラグは常にあります。

私はlaunchMode、clearTaskOnLaunch、noHistoryなどと多くの組み合わせを試しました...しかし、何も成功しませんでした-常に新しいタスクです。

これを解決する方法はありますか?ロリポップで実行しています。ありがとうございました。

0 投票する
1 に答える
155 参照

android - Android : タスクとバック スタックの配置にヘルプが必要

これがばかげて些細なことに聞こえる場合は申し訳ありませんが、私は長い間それに固執しています.

5 つのアクティビティ A、B、C、D、E があります。A→B(Cに移動して終了)→C→D→Eのように連鎖します。C,D は相互に依存しているため、両方を一緒に終了するまで、C,D のインスタンスを失いたくありません。そして、これを E で実行したいということは、 E から C,D,E を終了して A に移動するか、すべてのアクティビティを終了してから A の新しいインスタンスを開きたいということです。誰かがこの種の問題に対する簡単な解決策をすでに持っている場合は、解決策を提供してください。私は多くのことを試しましたが、CのlaunchModeを「singleTask」に設定し、DのlaunchModeを「singleInstance」に設定し、戻るボタンを押したときにCに移動する意図を使用して、完了せずに前後に移動できるようにしました。新しいインスタンスが作成されるかどうかは E にとって重要ではないため、「標準」のままにします。次に、意図を使用して A を開き、フラグ「FLAG_ACTIVITY_CLEAR_TOP」を追加し、「singleInstance」アクティビティであるため、startActivityFor 結果を使用して D を閉じようとしました。

問題の1つは、作成されている構造を理解できないことですが、このようなものだと思います

ここで、E から A の新しいインスタンスに移動し、他のすべてを閉じる必要があります。すべてのアクティビティは同じアフィニティを持っているので、finishAffinity() を使用してみましたが、うまくいきませんでした。

もう 1 つの問題は、結果を E に設定したときに D の onActivityResult メソッドが呼び出されないことです (stackoverflow の回答の 1 つによると、D が singleInstance であるためだと思います) が、戻るボタンを押すと A から呼び出されますA または A から finish() が呼び出されたときに言うことができます (なぜこれが起こるのかわかりません)。そのため、戻るボタンを押すと、さまざまな種類の問題が発生します。

0 投票する
5 に答える
870 参照

android - Androidであるアクティビティから別の拡張アクティビティに値を送信する方法は?

私は共通のアクティビティ、つまりBaseActivityを持つアプリケーションを開発しています。アプリケーション内の他のすべてのアクティビティに拡張しています。BaseActivity でいくつかの AsyncTask を実行して、他のすべてのアクティビティに反映させます。私のクエリは、アクティビティの 1 つからこの BaseActivity に値を渡す必要があるということです。

クラス、インターフェイスの概念を試しましたが、うまくいきませんでした。これを達成する方法を教えてください。私の参照コードが必要な場合は、コメントしてください。投稿します。

編集済み

このcountvalueBaseActivityに渡す必要があります。MainActivity2 などの別のアクティビティに移動しているため、インテントを使用できません

MainActivity これは私の AsyncTask コードです

0 投票する
1 に答える
772 参照

android - タスクマネージャーからスワイプしている間、ロリポップでAndroidバックグラウンドサービスが停止する

Androidアプリにサービスがあり、アプリがタスクマネージャーから強制終了されてもバックグラウンドで継続的に実行したい.現在のコードは、ロリポップ以前のバージョンではうまく機能します.しかし、ロリポップでは機能しません(ロリポップでは、タスクマネージャーから停止します)これを解決する方法。

サービスクラス

主な活動

0 投票する
3 に答える
8912 参照

android - バックグラウンドから別のアプリでダイアログ アクティビティを表示する

別のアプリ B (地図など) を開くアプリ A があるとします。このアプリはあなたによって制御されていません(つまり、既存のアプリです)。したがって、アプリ A はバックグラウンドにあります。イベントが発生し、A がアプリ B の UI の上にフローティング ダイアログを表示したいとします (アプリ B のアクティビティをその背後に表示したままにします)。これは可能ですか?

(これに対する通常の答えは通知を表示することですが、これは大衆向けアプリではなく、ユーザーの注意を非常に直接的に引き付けようとしています。)

現在、私は次のようなことをしようとしていました:

アプリ A (バックグラウンドにあるアプリ) 内から。

しかし、それを行うと、バックスタックの元のアプリ A アクティビティとアプリ B アクティビティのにダイアログが挿入されます。