タグ付けされた質問 「android-activity」

Androidでのアクティビティの作成または管理に関する質問。Androidアプリケーションでは、アクティビティは、ユーザーが何かを実行できるようにするユーザーインターフェイスを提供するコンポーネントです。簡単な例は、電話をかける、写真を撮る、電子メールを送信する、または地図を表示することです。

10
Androidアプリのメモリ不足の問題-すべて試しましたが、それでも途方に暮れています
開発中のアプリのメモリリークを把握するために4日間かけてすべてのことを試してみましたが、物事はずっと前に意味をなさなくなりました。 私が開発しているアプリはソーシャルな性質のものなので、アクティビティー(P)をプロファイルし、アクティビティーをデータ付きでリストします(例:バッジ(B))。プロファイルからバッジリスト、他のプロファイル、他のリストなどに移動できます。 したがって、このようなフローを想像してみてください。P1-> B1-> P2-> B2-> P3-> B3など。各Bページ。 問題の概要は次のとおりです。各ページのサイズに応じて少しナビゲートした後、ランダムな場所(ビットマップ、文字列など)でメモリ不足の例外が発生し、一貫性がないようです。 なぜ私がメモリ不足に陥っているのかを理解するために考えられるすべてのことをした後、私は何も思いつきませんでした。理解できないのは、AndroidがP1、B1などをロード時にメモリ不足でクラッシュしてクラッシュした場合に、P1、B1などを強制終了しない理由です。onCreate()およびonRestoreInstanceState()を介してこれらに戻ると、これらの以前のアクティビティが終了し、復活することを期待します。 これは言うまでもなく、P1-> B1->戻る-> B1->戻る-> B1を実行しても、クラッシュが発生します。これはある種のメモリリークを示していますが、hprofをダンプしてMATおよびJProfilerを使用した後でも、正確に特定することはできません。 Webからの画像の読み込みを無効にし(そして、それを補ってテストを公正にするために読み込まれるテストデータを増やしました)、画像キャッシュがSoftReferencesを使用することを確認しました。Androidは実際にはいくつかのSoftReferencesを解放しようとしますが、メモリ不足になる直前です。 バッジページはWebからデータを取得し、BaseAdapterからEntityDataの配列にロードして、それをListViewにフィードします(私は実際にはCommonsWareの優れたMergeAdapterを使用していますが、このバッジアクティビティでは、とにかく1 つしかアダプターがありませんが、いずれにせよこの事実に言及したかった)。 私はコードを調べましたが、リークするものを見つけることができませんでした。見つけることができるすべてのものをクリアしてnullにし、System.gc()でさえ左右に移動しましたが、それでもアプリがクラッシュします。 スタック上にある非アクティブなアクティビティが取得されない理由はまだわかりません。それを理解したいのですが。 この時点で、ヒント、アドバイス、解決策など、役立つものを探しています。 ありがとうございました。

4
startActivityForResultを使用して、子アクティビティでrequestCodeを取得する方法は?
A、B、C、Dの4つのアクティビティがあります。私の状況では、AはstartActivityForResultによってアクティビティBを開始します。 startActivityForResult(new Intent(this,B.class),ONE); 他の状況では、私は他の状況でBになります。お気に入り startActivityForResult(new Intent(this,B.class),TWO); Bでは、requestCodeに応じてCまたはDを呼び出す必要があります。 つまり、CまたはDを開始する必要がある場合です。したがって、子アクティビティ(ここではB)でrequestCodeを確認する方法を知る必要があります。 つまり、アクティビティBが開始されたリクエストコードを取得したいと思います。

3
android.intent.action.MAINの意味は何ですか?
私は非常に多くの異なる紛らわしい説明を見てきました。 <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> の意味は何ですか <action android:name="android.intent.action.MAIN" /> そして <category android:name="android.intent.category.LAUNCHER" /> そして <category android:name="android.intent.category.DEFAULT" />

3
AndroidのsingleTaskまたはsingleInstance起動モード?[閉まっている]
クローズ。この質問は意見に基づいています。現在、回答を受け付けていません。 1年前に閉鎖。 ロックされています。この質問はトピックから外れていますが、歴史的に重要であるため、この質問とその回答はロックされています。現在、新しい回答ややり取りは受け付けていません。 主なアクティビティとしてリストがあるアプリがあります。アイテムをクリックすると、そのアイテムの詳細ビューが開きます。また、メインアクティビティと同様の、意図したとおりに機能する検索アクティビティもあります。 ただし、ユーザーが複数回検索できるように、この検索アクティビティのインスタンスをスタックに1つだけにして、[戻る]をクリックすると、(前の検索結果に戻るのではなく)検索を開始する前の前のビューに戻るようにします。 singleTaskとsingelInstanceの両方の起動モードが私が望むことを実行しているように見えるので、この目的でどちらを使用すべきか、そしてその理由がわかりません。

10
Intent.FLAG_ACTIVITY_CLEAR_TOPをどのように使用してアクティビティスタックをクリアしますか?
私はこれの使用についていくつかの投稿を読みましたが、それが私のために機能していないので何かが欠けているに違いありません。私のアクティビティAのマニフェストにはlaunchmode = "singleTop"があります。アクティビティBをlaunchmode = "singleInstance"で開始します。アクティビティBはブラウザを開き、受信してインテントバックします。これがsingleInstanceである理由です。ユーザーがアクティビティAに戻されるように、戻るボタンをオーバーライドしようとしています。その後、アクティビティBに戻るのではなく、戻るを押してアクティビティを終了できます。 // activity B @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.ECLAIR && keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) onBackPressed(); return super.onKeyDown(keyCode, event); } @Override public void onBackPressed() { startActivity(new Intent(this, UI.class) .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK)); return; } ブラウザから戻った後、スタックは... A、B、Browser、B このコードによってスタックが... A …



1
Android:アクティビティのリターンをキャプチャする
新しい活動の立ち上げについて質問があります。要約すると、これです。ビューに3つのタブがあります A) contains gMap activity B) camera activity C) some random text fields. 要件は、アプリケーションがポートレートモードで実行されることです。 カメラプレビューサーフェス(B)を除いて、3つのタブはすべて期待どおりに機能します。90度回転します。それを正しくする唯一の方法は、アプリを横向きに設定することです。これにより、すべてのタブが表示され、ほとんど機能しなくなります。 私の解決策はこれです:置き換える 空の通常のアクティビティを含む私のカメラアクティビティ Intent i = new Intent(this,CameraActivity.class); startActivity(i); これにより、CameraActivityが起動します。そして、それはうまくいきます。線形レイアウトを作成し、実際のタブのように見える3つの画像を含める必要があったため、画面を横向きに回転させながらタブの操作を模倣し、ビジュアルを縦向きに保つことができます。ユーザーは画像(ボタン)の1つをクリックして、次のタブを表示できます。これが私の問題です。「カメラアクティビティ」を終了して、タブの「空白のアクティビティ」に戻ります。ここで、画像から目的のタブをクリックすると解釈されます。 主なことは、戻ると、タブの下の空白(黒)のページに戻ることです(「空」であるため)。アクティビティを呼び出したページに戻るイベントをキャプチャして、それらが実行したアクションを確認するにはどうすればよいですか? クリックされた偽のタブ(画像)に応答してカメラアクティビティを終了できるonclicklistenerを設定できます。終了すると、タブが更新され、そこに戻ります。助言がありますか? ありがとう、


3
Android互換パッケージにはActivity.getFragmentManager()が含まれていません
3月3日にリリースされたばかりのAndroid互換性パッケージを使用して、2.1に基づくAndroidアプリにフラグメントを追加しようと試み始めました。ライブラリをプロジェクトに含め、コードをアクティビティベースのクラスからフラグメントベースのクラスに移動し始めましたが、Googleのフラグメントの例は3.0のアクティビティクラス(Honeycomb)に依存しているように見えることに気付きました。新しいメソッドgetFragmentManager()があります。これは、フラグメントシステムに不可欠なフックのようです。 互換性パッケージライブラリ内で、getFragmentManager()を含むいくつかの含まれているActivity実装を調べようとしましたが、見つかりません。ハニカム互換性のためにフラグメントを含めることができるようにgetFragmentManager()を見つけることができる場所を誰かが知っていますか、そうでない場合は、FragmentManagerを使用せずにフラグメントを含める方法を知っていますか?

5
アクティビティとフラグメントの違いは何ですか?
私の調査によると、バックスタックの概念とその存在方法には大きな違いがあります。 アクティビティ ときactivityに配置されるbackstackのactivitiesユーザだけ押すことにより、前のアクティビティに戻ってナビゲートすることができるback ボタン。 Activity 独立して存在することができます。 断片 fragmentアクティビティにが配置されたら、のaddToBackstack()間に呼び出すことによってインスタンスを保存するように要求する必要がありますfragment transaction。 Fragment 中に住んでいる必要があります activity 追加の違いはありますか?

1
ViewModelStoreおよびviewModelStoreOwnerとは何ですか?
この新しいViewModelProvider api(ViewModelProvidersは非推奨)のため、私は非常に混乱しています 新しい変更と同様に、新しいコンストラクター(ソースコード)もあります。 #1 public ViewModelProvider(@NonNull ViewModelStoreOwner owner) { this(owner.getViewModelStore(), owner instanceof HasDefaultViewModelProviderFactory ? ((HasDefaultViewModelProviderFactory) owner).getDefaultViewModelProviderFactory() : NewInstanceFactory.getInstance()); } #2 public ViewModelProvider(@NonNull ViewModelStoreOwner owner, @NonNull Factory factory) { this(owner.getViewModelStore(), factory); } #3 public ViewModelProvider(@NonNull ViewModelStore store, @NonNull Factory factory) { mFactory = factory; mViewModelStore = store; } Gradle依存関係: implementation "androidx.lifecycle:lifecycle-extensions:2.2.0-rc02" …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.