Articles of android activity

我的设置活动的布局文件在哪里?

我使用了Settings Activity模板在android studio中创建了一个新活动。 创建它之后,我无法在任何地方find活动的布局文件。 我在哪里可以find布局文件? 如果Settings Activity模板没有布局文件,我该如何更改其内容? Android studio还创建了一个名为xml的新文件夹,这与设置活动有什么关系吗?

Android:FLAG_ACTIVITY_NEW_TASK在同一进程中有效吗?

假设应用程序已经有一堆活动,然后使用FLAG_ACTIVITY_NEW_TASK从应用程序上下文启动一个新活动。 这发生在同一个进程中,即在应用程序内部,如下所示: AppContext -> A(FLAG_ACTIVITY_NEW_TASK) -> B -> C; AppContext -> D(FLAG_ACTIVITY_NEW_TASK) 根据文档,我们现在有2个任务: Task 1: A, B, C; Task 2: D 从文档中可以看出,用户理论上可以独立地切换到活动C或活动D,因为它们属于不同的任务。 然而,在实践中,我无法切换到活动C – 它总是切换到D. 我的问题是:如果在与FLAG_ACTIVITY_NEW_TASK相同的过程中启动,任务是不是独立的,用户只能切换到最顶层任务中最顶层的活动,这是真的吗? 如果答案是“否”,那么用户切换到任务1的方式是什么? UPDATE 答案是: 不 任务是独立的,用户可以独立地在他们的活动之间切换,有效地将您的应用程序的两个活动放在堆栈的顶部。 在问起原始问题三年后,我才find了用例。 我们的应用程序将自己注册为URL方案的处理程序(如market://xxx.yyy/zzz )。 现在让我们想象一下,用户使用启动器启动了应用程序,进入某事物的中间(活动A, B, C ),然后离开。 然后在浏览器中,用户单击URL以启动我们的其他活动(活动D )。 这导致在同一时间内有两个任务:活动A, B, C (顶部有C )和活动D 用户可以通过任务历史在这两个活动之间切换。 有趣的是,使用应用程序自己的图标在任务历史记录中可以看到活动C,但是使用浏览器的图标可以看到活动D. 无论如何,两者都可以切换到。 此外, ABC和D两个任务都在同一个过程中运行。 这意味着所有单一对象和静态数据都在它们之间共享。 因此,如果不采取谨慎措施,他们可能会破坏彼此的状态。

android回到第一个屏幕

我有一个Android应用程序链接(由linkify制作),导入我的应用程序的其他屏幕。 我想知道关闭所有“孩子”活动的最佳方法是什么,并回到最初推出的第一个活动。 在其他方面这样的事情: HomeScreenActivity => Screen1(通过Linkify-link)=> Screen2 => Screen3 => click home =>(关闭屏幕1,2和3)=> HomeScreenActivity

onCreate,onCreateOptionsMenu,onResume,执行的顺序是什么?

如果之前被问到这个问题,我很抱歉…无论如何,标题是什么,onCreateOptionsMenu何时执行? 在onResume之前或之后? 在我的应用程序中,当活动首次运行/打开时,订单将是onCreate – > onResume – > onCreateOptionsMenu 但是如果我改变设备的方向,它会自动调用onDestroy,因此活动将被重新创建,在这种情况下,订单将是onCreate – > onCreateOptionsMenu – > onResume 我现在很困惑……任何人都可以对此作出解释吗?

Android中的活动之间的inheritance

我无法将inheritance概念应用于Android活动 – 例如。 ActivityA extends Activity , ActivityB extends ActivityA ,然后如果我使用ActivityB启动,则调用两个活动(A然后B)的onCreate()方法。 我的问题是,在典型的Java中,来自ActvityA的onCreate应该被覆盖 – 但onCreate相当表现为构造函数,即使它是一个函数。 inheritance如何在Android中运行,尤其是 wrt其他函数如onPause(),onResume等? 编辑:我还注意到ActivityA可能有许多在其onCreate()中调用的抽象方法,其定义在ActivityB中提供。 这个怎么用 ?

使用RemoteViews的Android通知 – 具有与RemoteViews布局相关的活动

我一直在研究如何使用RemoteView创建自定义布局通知。 到目前为止,我能够使用contentView和bigContentView创建一个通知,指向具有自定义布局xml的RemoteView 。 但是,没有发生的事情是在创建此RemoteView时启动Activity (与自定义布局关联)。 我已经双重检查并在我的布局xml中,它似乎有正确的Activity类名: ….. the rest are standard layout items: images, buttons and text 在清单文件中,在主应用程序主活动之后,还添加了通知活动: 我希望当通知使用RemoteView作为其内容时,此RemoteView将启动附加到其布局定义的活动。 但似乎没有。 以下是我在主应用程序Activity创建通知的方法: protected void startNoti() { if( noti!=null ) return; Context context = getApplicationContext(); RemoteViews contentView = new RemoteViews(context.getPackageName(),R.layout.activity_noti1); Notification.Builder notibuilder = new Notification.Builder(context); notibuilder.setContentTitle(” “); notibuilder.setContentText(” “); notibuilder.setSmallIcon(R.drawable.ic_launcher); notibuilder.setOngoing(true); manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); noti = […]

与setContentView相反

在我的Activity子类OnCreate方法中,我使用setContentView(XXX)来设置窗口布局。 在某些情况下,有必要在“OnStart”时间停止此活动。 在OnStart中调用Activity.finish()方法,实际上会停止执行,但会导致一个丑陋的闪烁效果,我的布局会在应用程序死亡之前立即显示。 问题是:是否与setContentView相反? 我可以使用ipotetic clearContentView来清空布局并避免闪烁吗? 在此先感谢L.

将特定活动作为堆栈中的根活动

我的堆栈上有一组活动说A – > B – > C. 当我启动名为’D’的活动时,它应该被解雇,因为我的应用程序的根活动和所有其他活动(A,B,C)应该在活动D启动后从我的堆栈中清除。任何人都可以告诉我这个怎么做

Android上的活动方向会自动更改

我正在使用minSdkVersion=15开发基于Android的移动应用程序。 我想支持平板电脑的方向和智能手机的肖像。 一切都像魅力一样,但我遇到了一个让我发疯的小虫子。 当智能手机处于横向模式并且我尝试触发新的活动时,它会以横向模式打开一段时间,然后自动旋转到纵向。 我的每个活动都扩展了一个GeneralActivity类: public class GeneralActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // If smartphone lock orientation to portrait if (!Helper.isTablet(this.getApplicationContext())){ this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); } } } 我用这个function检测平板电脑: public class Helper { public static boolean isTablet(Context context){ Configuration config = context.getResources().getConfiguration() return config.smallestScreenWidthDp >= 600; } } 我选择不在Manifest.xml中指定android:screenOrientation ,因为这样我就能够支持平板电脑的所有界面方向。 我错过了什么吗? 编辑 […]

即使手机由于电量不足而死机,也会调用onPause()或onStop()吗?

例如,如果我需要保留用户可以在我的应用程序中编辑的一些非常重要的数据,我是否需要在每次用户更改此类数据时保存它们,或者如果我将其保存在onPause(),onStop中就可以了( )或onDestroy()方法? 可以某种方式应用程序结束没有任何这些方法调用? (例如电池耗尽时)