Tag: android activity

getApplication()与getApplicationContext()

我无法找到一个令人满意的答案,所以在这里我们去: Activity/Service.getApplication()和Context.getApplicationContext()什么? 在我们的应用程序中,都返回相同的对象。 然而,在ActivityTestCase中,模拟应用程序将使getApplication()返回模拟,但getApplicationContext仍将返回不同的上下文实例(由Android注入)。 这是一个错误? 这是故意的吗? 我甚至不了解其中的差别。 在测试套件之外,是否有两个调用可能返回不同的对象? 何时,为什么? 而且,为什么getApplication在Activity和Service上定义,而不是在Context ? 不应该总是有从任何地方有效的应用程序实例吗?

Android:返回上一个活动

我想在android应用上做一些简单的事情。 怎么可能回到以前的活动。 我需要什么代码才能回到以前的活动

如何防止自定义视图在屏幕方向更改中丢失状态

我已经成功实现onRetainNonConfigurationInstance()为我的主要Activity保存和恢复跨屏幕方向更改某些关键组件。 但是,看起来,我的自定义视图正在重新创建方向改变时从头开始。 这是有道理的,虽然在我的情况下,这是不方便的,因为有问题的自定义视图是一个X / Y的情节,绘制点存储在自定义视图。 有没有一种狡猾的方式来实现自定义视图onRetainNonConfigurationInstance()相似的东西,还是我只需要在自定义视图中实现方法,让我得到并设置其“状态”?

Android的 – 如何覆盖“后退”按钮,所以它不完成()我的活动?

我目前有一个活动,当它显示一个通知也会显示在通知栏。 这样当用户按下home并且Activity被推到后台时,他们可以通过Notification返回Activity。 问题出现在用户按下后退按钮时,我的活动被破坏,但是通知仍然存在,因为我希望用户能够按下,但仍然能够通过通知进入活动。 但是当一个用户尝试这个时,我会得到空指针,试图开始一个新的活动,而不是把旧指针带回来。 所以基本上我想要后退按钮来执行完全一样的主页按钮,这是我迄今为止已经尝试: @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (Integer.parseInt(android.os.Build.VERSION.SDK) < 5 && keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { Log.d("CDA", "onKeyDown Called"); onBackPressed(); } return super.onKeyDown(keyCode, event); } public void onBackPressed() { Log.d("CDA", "onBackPressed Called"); Intent setIntent = new Intent(Intent.ACTION_MAIN); setIntent.addCategory(Intent.CATEGORY_HOME); setIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(setIntent); return; } 然而,上面的代码似乎仍然允许我的活动被销毁,当按下后退按钮时,如何阻止我的活动被销毁?

如何重新启动Android活动

如何重新启动Android Activity ? 我尝试了以下,但Activity只是退出。 public static void restartActivity(Activity act){ Intent intent=new Intent(); intent.setClass(act, act.getClass()); act.startActivity(intent); act.finish(); }

Android:清除后面的堆栈

在Android中,我有一些活动,比如说A,B,C 在AI中使用这个代码来打开B: Intent intent = new Intent(this, B.class); startActivity(intent); 在BI中使用这个代码来打开C: Intent intent = new Intent(this, C.class); startActivity(intent); 当用户点击CI中的按钮想要返回到A并清除后退堆栈(同时关闭B和C)。 所以当用户使用后退按钮B和C不会显示,我一直在尝试以下内容: Intent intent = new Intent(this, A.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent); 但是当我回到活动A时,如果我使用后退按钮,B和C仍然显示出来。我怎样才能避免这种情况?

Android:我如何获得当前的前台活动(从服务)?

有一个本地的Android的方式来获取从服务当前正在运行的活动的引用? 我有一个服务在后台运行,我想在事件发生时(在服务中)更新我当前的活动。 有没有一个简单的方法来做到这一点(就像我上面提到的那个)?

从历史堆栈中删除一个活动

我的应用程序在用户第一次运行应用程序时显示注册活动,如下所示: ActivitySplashScreen(欢迎游戏,注册一个帐户?) ActivitySplashScreenSignUp(很好,填写这个信息) ActivityGameMain(主游戏画面) 所以当用户点击每个屏幕上的一个按钮时,这些活动正好按照这个顺序启动。 当用户从活动#2转到#3时,是否可以完全清除历史堆栈中的#1和#2? 我喜欢这样,如果用户在#3,并点击后退按钮,他们只是去主屏幕,而不是回到初始屏幕。 我想我可以用任务来完成这个任务(即在#3开始一个新的任务),但想看看是否有更简单的方法, 谢谢

相同的导航抽屉在不同的活动

我制作了一个工作的抽屉,就像在developer.android.com网站的教程中显示的那样。 但现在,我想使用一个导航抽屉,我在NavigationDrawer.class中为我的应用程序中的多个活动创建。 我的问题是,如果任何人在这里可以做一个小教程,这解释了如何使用一个导航抽屉多个活动。 我首先阅读它在这个Android的导航抽屉在多个活动 但是它在我的项目上不起​​作用 public class NavigationDrawer extends Activity { public DrawerLayout drawerLayout; public ListView drawerList; private ActionBarDrawerToggle drawerToggle; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); drawerToggle = new ActionBarDrawerToggle((Activity) this, drawerLayout, R.drawable.ic_drawer, 0, 0) { public void onDrawerClosed(View view) { getActionBar().setTitle(R.string.app_name); } public void onDrawerOpened(View drawerView) { getActionBar().setTitle(R.string.menu); } }; […]