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

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

5
フラグメントのrunOnUiThread
アクティビティをフラグメントに変換しようとしています。のエラーマークrunOnUiThread。過去に: GoogleActivityV2はActivityから拡張されます。クラスExecuteTaskのrunOnUiThread。アクティビティにネストされたクラスExecuteTask。 (実行ok)今: GoogleActivityV2はFragmentから拡張されます。クラスExecuteTaskのrunOnUiThread。アクティビティにネストされたクラスExecuteTask。(runOnUiThreadのエラー) これが私のコードです public class GoogleActivityV2 extends SherlockMapFragment implements OnMapClickListener , OnMapLongClickListener , OnCameraChangeListener , TextWatcher { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){ View rootView = inflater.inflate(R.layout.activity_googlev2, container, false); Init(); adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_dropdown_item_1line); textView = (AutoCompleteTextView) getView().findViewById(R.id.autoCompleteTextView1); return rootView; } public void onCameraChange(CameraPosition …

3
Androidのソースコードで@hideはどういう意味ですか?
以下のためのActivityソースコード、行3898(底に近いです)。 /** * @hide */ public final boolean isResumed() { return mResumed; } どういう@hide意味ですか? をpublic class ChildActivity extends Activity { ... }使用できない、または参照できないことがわかりましたActivity.isResumed()。これは正常ですか?どうすればアクセスできますか?

7
向きの変更に対するAndroidフラグメントのライフサイクル
互換性パッケージを使用して、フラグメントを使用して2.2をターゲットにします。 アプリでフラグメントを使用するようにアクティビティを再コーディングした後、方向の変更/状態管理を機能させることができなかったため、単一のFragmentActivityと単一のFragmentを持つ小さなテストアプリを作成しました。 方向の変更からのログは奇妙で、フラグメントOnCreateViewへの複数の呼び出しがあります。 新しいインスタンスを作成するのではなく、フラグメントをデタッチして再アタッチするような何かが明らかに欠けていますが、どこが間違っているのかを示すドキュメントが表示されません。 誰かが私がここで間違っていることについていくつかの光を当てることができますか?ありがとう 向きを変えた後のログは以下の通りです。 Initial creation 12-04 11:57:15.808: D/FragmentTest.FragmentTestActivity(3143): onCreate 12-04 11:57:15.945: D/FragmentTest.FragmentOne(3143): OnCreateView 12-04 11:57:16.081: D/FragmentTest.FragmentOne(3143): OnCreateView->SavedInstanceState null Orientation Change 1 12-04 11:57:39.031: D/FragmentTest.FragmentOne(3143): onSaveInstanceState 12-04 11:57:39.031: D/FragmentTest.FragmentTestActivity(3143): onCreate 12-04 11:57:39.031: D/FragmentTest.FragmentOne(3143): OnCreateView 12-04 11:57:39.031: D/FragmentTest.FragmentOne(3143): OnCreateView->SavedInstanceState not null 12-04 11:57:39.031: D/FragmentTest.FragmentOne(3143): OnCreateView 12-04 11:57:39.167: D/FragmentTest.FragmentOne(3143): OnCreateView->SavedInstanceState …

11
バンドルを介してオブジェクトを送信する方法
バンドルを介して処理の大部分を行うクラスへの参照を渡す必要があります。 問題は、インテントやコンテキストとは関係がなく、大量の非プリミティブオブジェクトがあることです。クラスをparcelable / serializableにパッケージ化してに渡すにはどうすればよいstartActivityForResultですか?

2
Androidの破壊活動、プロセスの強制終了
こんにちは、Androidがメモリをどのように管理しているのか疑問に思っています。正確な答えはどこにもありません。現在のアクティビティスタックに5つのアクティビティがあるアプリケーションがあるとします(4つが停止し、1つが再開します)。接続されているサービスはありません。HOMEボタンを押すと、すべてのアクティビティが停止します。他のメモリ消費アプリケーションを起動しましたが、全体のデバイスメモリが少なくなり始めています。そして問題は ...アプリケーションはどうなりますか? システムは、メモリを回復するために1つまたはいくつかのアクティビティのみを破棄できますか? システムはアプリケーションのプロセス全体を強制終了しますか?すべての活動はうまく破壊されますか? アプリケーションが完全に終了したときにアプリケーションに戻るとどうなりますか?(最初の開始のように)最初から開始するのでしょうか、それともアクティビティをプレビュー状態に回復しようとしますか? 更新: この質問をする前に、アクティビティのライフサイクルを何度か見ましたが、質問に対する答えはありません。私はいくつかのテストを行い、いくつかの答えがあります。DDMSの「プロセスの停止」はテストの手がかりでした。 私は質問1の答えをテストしていませんが、ガイドが言うように: アクティビティが一時停止または停止した場合、システムはアクティビティを終了するように要求するか、単にプロセスを強制終了することにより、アクティビティをメモリから削除できます。 1つ以上のアクティビティは、プロセスを終了せずに(onDestroyメソッドを使用して)穏やかに破棄できるようです。それらに戻るときに、単に(onCreate + bundle)を取得します。 質問2の回答: はい。通常、システムはプロセス全体を強制終了します。つまり、アクティビティや静的フィールドを含むすべてのデータが破棄されます。これはうまく行われていません-一時停止/停止されたアクティビティのonDestroyまたはfinialize()を取得しません。これが、onPauseメソッドの直前にsaveInstanceState()が呼び出される理由です。onPauseは基本的に最後のメソッドであり、このメソッドの後はonStopまたはonDestroyが表示されないため、何かを保存する必要があります。システムはプロセスを強制終了して、オブジェクトが保持していることや実行していることをすべて破棄できます。 質問3の回答: 強制終了したアプリケーションに戻るとどうなりますか? Android 2.2以前-ランチャーアクティビティを使用して、アプリケーションは最初から始まります。 2.2以降-システムは以前のアプリケーションの状態を復元します。どういう意味ですか?つまり、最後に表示されたアクティビティが再作成されます(onCreate +バンドル)。アクティビティスタックはどうなりますか?スタックは問題ありませんが、スタック上のすべてのアクティビティは停止しています。戻るボタンで戻ると、それぞれが再作成されます(onCreate +バンドル)。それについてもう1つあります。 通常、ユーザーがホーム画面からタスクを再選択すると、特定の状況で、システムはタスクをクリアします(ルートアクティビティの上にあるスタックからすべてのアクティビティを削除します)。通常、これは、ユーザーが30分などの特定の時間タスクにアクセスしなかった場合に行われます。 結論? アクティビティローテーションの問題の処理はandroid:configChanges = "orientation"で解決できるとは思わないでください。そうすると、気づいていない他の多くの問題が発生します。 DDMS-プロセス停止ボタンでアプリケーションをテストします。これを見る 静的変数を使用するときは注意してください。アクティビティ1で初期化したときに、アクティビティ2で初期化されるとは思わないでください。グローバル静的を初期化する唯一の安全な場所は、アプリケーションクラスです。 onStopまたはonDestroyが表示されない場合があることに注意してください。ファイル/データベースを閉じ、onPauseでダウンローダーを停止します。アプリにBGで何かを実行させたい場合-フォアグラウンドサービスを使用します。 それはそれだろう...私が私のエッセイを手伝ってくれることを願っています:)

5
Androidでサービスを開始する
特定のアクティビティが開始されたときにサービスを呼び出したい。だから、これがServiceクラスです: public class UpdaterServiceManager extends Service { private final int UPDATE_INTERVAL = 60 * 1000; private Timer timer = new Timer(); private static final int NOTIFICATION_EX = 1; private NotificationManager notificationManager; public UpdaterServiceManager() {} @Override public IBinder onBind(Intent intent) { // TODO Auto-generated method stub return null; } @Override public …

4
Androidで別のアクティビティを呼び出すときにアニメーションを提供するにはどうすればよいですか?
2つのアクティビティAとBがあります。アクティビティAがBを呼び出したときにアニメーションを縮小し、アクティビティBがAを呼び出したときにアニメーションを最大化したいのですが、アニメーションxmlファイルは必要ありません。 Androidで別のアクティビティを呼び出すと、デフォルトのアニメーションが表示され、次に縮小アニメーションが呼び出されます。 私が欲しいのは、デフォルトのアニメーションが発生するのではなく、必要なアニメーションが発生することです。 別のアクティビティを呼び出すときに、実際にアニメーションを提供できますか?

3
setRetainInstance(true)をさらに理解する
を呼び出すと、正確にはどうなりますか?ドキュメントは事実上存在せず、これは非常に重要な機能のようです。具体的には、このシーケンス(私が作成したもの)のどの程度が正しいかを知りたいです。setRetainInstance(true)Fragment ユーザーがデバイスを回転させます。 断片から取り外されるActivityとFragment.onDetach()呼ばれます。 アクティビティは破棄されます。Activity.onDestroy()と呼ばれます。 Activity(可能な場合GCにより、)Ja​​vaオブジェクトが削除されます。 新しいActivityJavaオブジェクトが作成されます。そのコンストラクタ、およびonCreate()呼び出されます。 では、フラグメントを含むレイアウトを設定するActivity.onCreate()かsetContentView(...)、フラグメントFragmentTransaction を追加するために使用します。 私はこれについて本当にわかりませんが、Androidは古いフラグメントを見つけるのに十分スマートでありFragment.onAttach()、新しいフラグメントに再アタッチするように呼び出すと思いますActivity 次に(または前に?誰が知っているか?)Activity.onResume()が呼び出されます。 それで正しいですか?FragmentTransaction.add(new MyFragment(), ...)初めて明示的に使用したとしても、Androidは古いフラグメントを見つけるのに十分スマートですか?もしそうなら、別のフラグメントを追加しないようにするにはどうすればよいonCreate()ですか?このようなことをする必要がありますか?: if (getSupportFragmentManager().findFragmentByTag("foo") == null) { FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); ft.add(new FooFragment(), "foo").commit(); }

23
アクティビティがフォアグラウンドか可視バックグラウンドかを確認するにはどうすればよいですか?
タイマーにスプラッシュスクリーンがあります。私の問題はfinish()、システムダイアログボックスがポップアップし、次のアクティビティのみを実行したいため、アクティビティの前に次のアクティビティが開始したことを確認する必要があることfinish()です。ユーザーがダイアログボックスからオプションを選択したら? 私はあなたの活動がフォアグラウンドにあるかどうかを確認する方法について多くの質問があることを知っていますが、これが活動の上にダイアログボックスを許可するかどうかもわかりません。 ここに問題があります、赤は会話が前景にある間にバックグラウンドにある私の活動です: 編集:私は使用せずに試しましたfinish()が、私の活動は回避しようとしているアプリケーションのスタックに戻る可能性があります。

7
ダイアログで没入モードを維持するにはどうすればよいですか?
アクティビティがカスタムダイアログを表示するときに新しい没入モードを維持するにはどうすればよいですか? ダイアログでイマーシブモードを維持するために以下のコードを使用していますが、そのソリューションでは、カスタムダイアログを開始するとNavBarが1秒未満で表示され、その後消えます。 次のビデオでは、より良い問題(ナビゲーションバーが表示され、画面の一番下を見て)説明してhttp://youtu.be/epnd5ghey8g この動作を回避するにはどうすればよいですか? コード 私のアプリケーションのすべての活動の父: public abstract class ImmersiveActivity extends Activity { @SuppressLint("NewApi") private void disableImmersiveMode() { if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) { getWindow().getDecorView().setSystemUiVisibility( View.SYSTEM_UI_FLAG_FULLSCREEN ); } } @SuppressLint("NewApi") private void enableImmersiveMode() { if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) { getWindow().getDecorView().setSystemUiVisibility( View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION …

5
onSaveInstanceState()およびonRestoreInstanceState()が正確に呼び出されるのはいつですか?
次の図(公式ドキュメントから)は、Androidアクティビティのよく知られたライフサイクルを示しています。 一方、アクティビティがシステムによって破棄されると(たとえば、メモリを解放する必要があるため)、次の図に示すように、メソッドのおよびを使用してアクティビティの状態が自動的に保存および復元されることがあります(また、公式ドキュメントから):onSaveInstanceState()onRestoreInstanceState() アクティビティが破棄されようとしているときに常に呼び出されるとonSaveInstanceState()は限らないことを知っています。たとえば、ユーザーが「戻る」ボタンを押したために破棄された場合、アクティビティの状態は保持されません。しかし、状態が保存および復元され、onSaveInstanceState()/ onRestoreInstanceState()が呼び出された場合、正確にいつ呼び出されますか? 例えば、上記の図によれば、onRestoreInstanceState()前と呼ばれるかもしれないonStart()、または後にonStart()しかしの前onResume()、または後にonResume()。同様に、にはいくつかの可能性がありonSaveInstanceState()ます。それで、彼らはいつ正確に呼ばれますか? 理想的には、アクティビティのライフサイクルの状態と、存在する場合は保存/復元の方法を示す図を組み合わせて見たいと思います。

17
Kotlin Androidが新しいアクティビティを開始
Androidで別のアクティビティを開始したいのですが、次のエラーが発生します。 コンストラクターの呼び出しを指定してください。分類子「Page2」にはコンパニオンオブジェクトがありません Intentクラスをインスタンス化した後。エラーを修正するにはどうすればよいですか?私のコード: class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } fun buTestUpdateText2 (view: View) { val changePage = Intent(this, Page2) // Error: "Please specify constructor invocation; // classifier 'Page2' does not have a companion object" startActivity(changePage) } }

10
別のアクティビティからアクティビティを完了する
次のような別のアクティビティから1つのアクティビティを終了したい: アクティビティ[A]でボタンをクリックすると、アクティビティ[A]を終了せずにアクティビティ[B]を呼び出します。 現在、アクティビティ[B]には、[ 新規]と[変更 ]の2つのボタンがあります。ユーザーが変更をクリックすると、スタックからアクティビティ[A]がポップされ、すべてのオプションがチェックされます。 しかし、ユーザーがアクティビティ[B]から[ 新規 ]ボタンをクリックすると、スタックからアクティビティ[A]を完了し、そのアクティビティ[A]をスタックに再度リロードする必要があります。 試してみましたが、スタックからアクティビティ[A]を完了できません...どうすればできますか? 私はコードを次のように使用しています: アクティビティ[A]から: Intent GotoB = new Intent(A.this,B.class); startActivityForResult(GotoB,1); 同じ活動の他の方法 public void onActivityResult(int requestCode, int resultCode, Intent intent) { if (requestCode == 1) { if (resultCode == 1) { Intent i = getIntent(); overridePendingTransition(0, 0); i.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); finish(); overridePendingTransition(0, 0); startActivity(i); } } …

8
アニメーションをアクティビティに追加するにはどうすればよいでしょうfinish()
アクティビティが作成されて正常に機能する場合にoverridePendingTransitionを使用していますが、フェードインがうまく機能しているのがわかりますが、アクティビティの終了をアニメーション化しようとしても、デフォルトの右から左へのスライドを実行しています。 最初に、次のようにアクティビティを開始するときにアウトアニメーションを定義してみました。 Intent myIntent = new Intent(a, SkdyAlert.class); myIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); a.startActivity(myIntent); if (android.os.Build.VERSION.SDK_INT > android.os.Build.VERSION_CODES.DONUT) { AnimationHelper.overridePendingTransition(a, R.anim.fadein, R.anim.fadeout); } あとは活動終了時にもやってみました okBtn.setOnClickListener(new OnClickListener() { public void onClick(View v) { finish(); if (android.os.Build.VERSION.SDK_INT > android.os.Build.VERSION_CODES.DONUT) { AnimationHelper.overridePendingTransition(activity, 0, R.anim.fadeout); } } }); しかし、これらのアプローチはどちらも、終了アニメーションの「右から左」のスライドを妨げません。私が間違っていることについて何かアイデアはありますか?


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.