Articles of android activity

Android:在恢复应用程序时恢复活动的Activity

我有两个运行的活动: mainActivity和childActivity 。 只要用户单击mainActivity中的按钮, 就会启动childActivity 。 我想要做的是: 当活动活动是childActivity并且用户单击主页按钮然后重新启动应用程序时 ,我希望看到childActivity 而不是启动的 mainActivity 。 我有一些建议实际上解决了。 我试图操纵onStart,onRestart,onResume,onStop,onDestroy事件。 但是,他们没有完全解决问题。 应该有一个聪明的方法。 谢谢。 编辑: 谢谢你的回答,Soonil。 您说的是从最近的活动窗口调用活动时发生的情况。 (长按主页按钮时窗口打开)但是; 从主屏幕打开时不会发生这种情况。 (比如从头开始)我不认为我的代码有一个特定的问题来产生这个错误。 因为,我创建了一个测试项目并在发送问题之前单独尝试并遇到了同样的问题。 无论如何,这是测试代码: public class MainActivity extends Activity implements OnClickListener { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); this.setTitle(“MainActivity”); ((Button) findViewById(R.id.btnChildActivity)).setOnClickListener(this); } @Override […]

Android – onStop()将被延迟调用

我发现我的活动onStop()方法将被调用,延迟时间不到10秒。 我以前从未见过这种行为。 注意: –活动是singleTop ,它以Intent.FLAG_ACTIVITY_REORDER_TO_FRONT标志开头。 注意: –我正在使用Build Tools v23.0.2。 延迟不是之前,方法将立即调用。

如何在手机中仅启用纵向和反向肖像,“sensorPortrait”无法在手机上使用?

我无法弄清楚为什么在一个活动的清单中设置“sensorPortrait”属性不能使活动进入反向纵向。 这是我在清单中设置的方式 以上代码对我来说无法在Moto E(4.4.4)或Galaxy S3(4.3)上获得reversePortrait和肖像,但我可以确认它适用于Nexus 7(5.0.1)平板电脑,我尝试了其他几个答案,但这个似乎是最容易的,它看起来似乎不适合我的’手机’,我错过了一些与此相关的信息吗? 我尝试了以下链接,这与我的问题类似,但似乎对此没有任何帮助 仅限纵向或反向肖像活动 目前使用标志“sensorPortrait”,它的行为就像在手机中设置“肖像”一样。

如何根据设备屏幕尺寸使用RecyclerView?

我有一个后端API端点,它在某些集合中返回JSON 。 每组包含10 lines of Json 。 例如: curl http://www.something.com?getData=0将给出first 10 elements和curl http://www.something.com?getData=1将返回下一组等等。 我使用RecyclerView和StaggeredGridView从给定的endpoints加载数据。 现在我只取第一套,它的工作非常好。 我在找什么? 如何根据Android屏幕尺寸在RecyclerView加载数据。 例如: 假设设备hdpi能够在RecyclerView加载25 RecyclerView 。 所以,这里的endpoints按顺序请求: http://www.something.com?getData=0 // will fetch 0-10 http://www.something.com?getData=10 // will fetch 11-20 http://www.something.com?getData=10&skip=5 // will fetch 21-25 如何动态制作上述流程。 这样它适用于所有屏幕尺寸? 顺便说一句,这是我将数据加载到StaggeredGridView适配器的方式: mRecyclerView = (RecyclerView) mActivity.findViewById(R.id.staggering_grid); mRecyclerView.setLayoutManager(new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL)); mAdapter = new StaggeredGridAdapter(mContext); mAdapter.addItems(response); mRecyclerView.setAdapter(mAdapter); 可能解决方案 如果我知道我需要根据设备填充多少Grid […]

NavigationView中的活动或片段?

我有一个用作滑入式菜单的NavigationView。 每个菜单项本身就是一个用例,因此我倾向于使用包含不同片段的活动。 但几乎每个NavigationView/NavigationDrawer例子都使用片段,所以我不知道在这里使用什么。 我认为不同的用例应该在自己的活动中“封装”,因此我不太明白为什么Navigation[View/Drawer]使用片段。 这引出了我的问题:对于包含完全独立的用例的Navigation[View/Drawer] – 我应该链接到活动或片段吗?

为什么onDestroy inActivity在ActivityB中调用finish()后没有调用

下一个过程很容易理解和重现,但会导致错误: activityA在其onCreate()方法中启动activityB activityB已创建,我在其onResume()方法中调用了finish() activityB onDestroy()被调用 activityA onResume()被调用 在activityA中,我点击菜单按钮调用finish() – 或按后退键。 activityA被删除但是没有调用onDestroy()而A仍然存在(adb shell dumpsys’myPackageName’表示生活活动太多) 码 活动A: public class FakeA extends Activity { private final static String TAG = FakeA.class.getCanonicalName(); @Override protected void onCreate(Bundle savedInstanceState) { Log.d(TAG, “onCreate, taskId :” + getTaskId()); super.onCreate(savedInstanceState); Intent intent = new Intent(FakeA.this, FakeB.class); startActivity(intent); } @Override protected void onResume() { Log.d(TAG, […]

如何通过ADB获取当前正在运行的活动的额外内容

我有一个关于使用ADB的问题。 我知道这个命令: adb shell dumpsys activity 可以显示当前在设备上运行的所有活动。 但我注意到有时,意图看起来像这样: Intent { …some_intent/activity_name…. (has extras) } 我知道额外的意思是活动已经开始传递给它的某些参数(我可能在这里错了,如果我是,请纠正我)。 所以我的问题是,如何通过ADB获得意图/活动的额外内容? 我需要这个的原因是因为我试图通过ADB命令启动apk(安装在手机上),例如: adb shell “su -c ‘am start -n com.package.name/.ActivityName'” 这工作并启动应用程序。 该应用程序有一个开始屏幕(比如我们称之为HomeActivity),您必须单击一个按钮并进行一些选择(比如SelectionActivity),它将转到另一个屏幕(比如ActionActivity)。 我希望能够启动apk并使其直接进入ActionActivity。 如果我尝试使用am start命令启动ActionActivity,应用程序将崩溃,我假设这是因为它需要SelectionActivity屏幕中的参数。 这就是为什么我试图看看ActionActivity屏幕实际上获得的“额外”或参数是什么,以便我可以执行以下操作: adb shell “su -c ‘am start -n com.package.name/.ActionActivity -e param1 val1 -e param2 val2′” 希望我的问题很清楚。 如果我在某个地方犯了错误,请纠正我。 提前致谢!

从其他应用程序接收数据在android中为空

我想让我的应用程序像Instagram我可以直接从我的应用程序共享图片,如果我从库中选择任何图像和点击共享我的应用程序显示在选择器列表上 从意图接收数据的代码是 private void initActivityState() { if (getIntent() != null){ runShareActivityIntent(); } } public void runShareActivityIntent(){ Intent passIntent=getIntent(); String action = passIntent.getAction(); String type = passIntent.getType(); if (Intent.ACTION_SEND.equals(action) && type != null) { Uri imageUri = (Uri) passIntent.getParcelableExtra(Intent.EXTRA_STREAM); Intent intentcall = new Intent(this, MainActivity.class); intentcall.putExtra(KEY_TYPE,type); intentcall.putExtra(KEY_VALUE,imageUri.toString()); startActivity(intentcall); finish(); } } 现在在我的情况下,当我的应用程序在后台我能够得到 String type = passIntent.getType(); […]

有关Android文档的说明

注意:即使系统在停止时破坏了您的活动,它仍然会保留状态 Bundle中的View对象(例如EditText中的文本)(一对键值对),如果用户导航回活动的同一个实例,则恢复它们(下一课讲述有关使用Bundle的更多信息)保存其他状态数据,以防您的活动被销毁和重新创建)。 同一个活动的实例 它是如何被破坏和重新创建的确切实例,它不是一个新的内存块(另一个实例),任何人都可以帮我清除这一点吗?

如何创建允许配置文件图片上传/更改的应用程序?

我一直在寻找一个如何在我的应用程序中实现配置文件图片更改的示例。 我想允许人们使用Parse.com添加/更改他们的个人资料图像(类似于今天的所有社交媒体应用程序)。 例如: Twitter,Facebook,Instagram等,它们都允许您拍摄/上传个人资料图像,并保存该图像,以后可以查看。 我没有运气find任何材料来涵盖如何做这样的事情,似乎没有别的理解我想在这里实现的目标: 即使在退出并重新打开应用程序后,图像也会从屏幕上停留下来? 到目前为止,在我的应用程序中,用户可以使用相机意图拍摄照片或从图库上传图像,该图像将完美地显示在图像视图中。 问题是:当我退出并重新打开应用程序时,图像视图内的图像不再显示(它已消失)。 我怎么解决这个问题? 主要活动: public class MainActivity extends AppCompatActivity { public static final int TAKE_PIC_REQUEST_CODE = 0; public static final int CHOOSE_PIC_REQUEST_CODE = 1; public static final int MEDIA_TYPE_IMAGE = 2; private Uri mMediaUri; private TextView mChangeProfilePic; protected ImageView mPreviewImageView; private Button mSaveChangesBtn; public ImageView mProfilePic; @Override protected void […]