Articles of android activity

获取应用程序上下文

这可能是一个简单的问题,但我只是想确保我是对的。 在我的Android应用程序中,我有一个使用的构造函数: activity.getApplicationContext() 活动作为parameter passing给构造函数。 问题是我从服务中调用此类。 如果我创建第二个构造函数接受Service作为参数并使用service.getApplicationContext ? 我会获得相同的应用程序上下文吗?

Android PendingIntent会带您进入已有的活动吗?

真的不确定如何搜索这个…… 每当在我的队列中添加或删除作业以在状态栏中发出通知时,我都会调用以下内容: private void showNotification() { int jobsize = mJobQueue.size(); int icon = (jobsize == 0) ? android.R.drawable.stat_sys_upload_done : android.R.drawable.stat_sys_upload; Notification notification = new Notification(icon, “Test”, System.currentTimeMillis()); Intent intent = new Intent(this, FileManagerActivity.class); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 0); notification.flags = (Notification.FLAG_SHOW_LIGHTS | Notification.FLAG_AUTO_CANCEL); notification.setLatestEventInfo(this, “Uploading to our servers”, getString((jobsize > 0) ? R.string.notification_active_transfers […]

关于将UI从BroadcastReceiver更新为特定活动的Android最佳实践

当我有一个broadcastReceiver说android.intent.action.MEDIA_BUTTON并且我想在不创建新活动的情况下更新当前活动的UI时,这个有什么好的做法吗? 我所知道的(可能不正确) 1)我可以将BroadcastReceiver放在与活动相同的类中,并在某些活动后调用updateUI函数 2)创建一个ContentObserver? 3)与活动创建的服务进行通信,使用aidl。 (如果从活动中注册,我不知道如何获得当前服务) 4)在与活动相同的类上的broadcastReceiver上创建自定义filter,并使用context.sendBroadcast(自定义filter的消息)和自定义filter调用updateUI(与一个相同但更通用?) 最后一个流程是来自BroadcastReceiver并最终更新UI而不更新活动(除非活动已经死了?) 请提供有关如何解决此类问题的链接/源代码。 非常感谢提前:)

如何以编程方式动态创建所有Android ui组件的列表? 例如TextView,ImageView等

我正在创建一个程序,我需要在其中创建所有不同Android组件的列表,而不是手工识别和键入List 。 我想以编程方式弄清楚我是否可以完成此操作以添加到String Arrays中,如下所示? Components[] = {“TextView”, “ImageView”, “RelativeLayout”, “LinearLayout”, “Random”, “DecimalFormat … 类似地,我想以编程方式创建所有不同数据types的列表 ,例如Int,String,ArrayList等,以添加到String Arrays,如下所示 DataTypes[] = {“Int”, “String”, “Object”, “Double”, “Char”, “Boolean … 到目前为止我能做的就是上面。 到目前为止,我一直在打字,如上所述。 我怎么能做到这一点? 谢谢 澄清 按数据types:我的意思是声明保存数据的variablestypes,例如Int,String,object,boolean,double,arrays,arraylists等。 按组件:我的意思是任何可以添加到Android的xml的可视组件,例如ImageView,TextView,LinearLayout,RelativeLayout等。 是的,我知道这些组件的数量可以是无限的(由使用的API决定),我想为它动态生成它们 最好不要使用别人的图书馆

Android浮动活动在滑动时关闭

最新Facebook的Android应用程序有一个非常漂亮的浮动评论窗口。 在那里,用户可以关闭向上或向下滑动的窗口,使其非常易于使用。 我想在我的应用程序中实现类似的行为,但我不知道该怎么做。 任何关于如何做的想法或线索都将非常感激。 Facebook应用程序的屏幕截图 (抱歉,我截取屏幕截图的Facebook应用程序是日文)

Android应用程序上的DeadObjectException

有时我会启动我的应用程序的Activity ,或者在ViewPager Fragment之间快速切换,这是在那个特定的Activity ,我得到了像这样的DeadObjectException : W/ActivityManager( 669): android.os.DeadObjectException W/ActivityManager( 669): at android.os.BinderProxy.transact(Native Method) W/ActivityManager( 669): at android.app.ApplicationThreadProxy.schedulePauseActivity(ApplicationThreadNative.java:660) W/ActivityManager( 669): at com.android.server.am.ActivityStack.startPausingLocked(ActivityStack.java:776) W/ActivityManager( 669): at com.android.server.am.ActivityStack.finishActivityLocked(ActivityStack.java:2501) W/ActivityManager( 669): at com.android.server.am.ActivityStack.finishTopRunningActivityLocked(ActivityStack.java:2375) W/ActivityManager( 669): at com.android.server.am.ActivityStackSupervisor.finishTopRunningActivityLocked(ActivityStackSupervisor.java:2040) W/ActivityManager( 669): at com.android.server.am.ActivityManagerService.handleAppCrashLocked(ActivityManagerService.java:9667) W/ActivityManager( 669): at com.android.server.am.ActivityManagerService.makeAppCrashingLocked(ActivityManagerService.java:9560) W/ActivityManager( 669): at com.android.server.am.ActivityManagerService.crashApplication(ActivityManagerService.java:10205) W/ActivityManager( 669): at com.android.server.am.ActivityManagerService.handleApplicationCrashInner(ActivityManagerService.java:9756) W/ActivityManager( 669): at com.android.server.am.NativeCrashListener$NativeCrashReporter.run(NativeCrashListener.java:86 和应用程序崩溃。 我也有一些像这样的不寻常的日志: […]

当活动被破坏时,活动背叛的不当行为

我有两个活动; 让我们说A和B.在activity A有一个广播接收器注册了侦听将完成活动A的特定事件。我在onCreate()注册广播接收器,并在activity A onDestroy()中销毁它。 为简单起见, activity B有一个名为“销毁活动A”的button 。 当用户点击button ,应销毁activity A 通常所有这些都运行顺利,没有任何问题,但问题出现在以下场景中: 1)假设我在activity B ,我按Home键将应用程序移动到后台然后如果我使用其他资源繁重的应用程序,Android系统将杀死我的应用程序以释放内存。 然后,如果我从最近的任务中打开我的应用程序,将恢复activity B ,并且将调用onCreate() , onResume()等方法。 现在我按下button来销毁activity A ,但活动A已被销毁,因此activity A的onCreate() , onResume()等方法将不会被调用,除非我按下back button进入activity A 因此, broadcast receiver未注册以监听事件。 2)当用户在设备的设置中从Developer选项中选择“Do not keep activities”时,会出现同样的问题。 我一直在寻找解决这个问题很长一段时间,但我无法find合适的答案。 处理此方案的最佳方法是什么? 这是Android的错误吗? 这个问题应该有一些解决方案。 请帮帮我。

为什么可以将一个布尔数组写入一个parcel而不是一个布尔值?

在Parcel的文档中,它声明了一种方法 public final void writeBooleanArray (boolean[] val) 但是没有writeBoolean(boolean val)方法writeBoolean(boolean val) 还存在: public final void writeLong (long val) public final void writeLongArray (long[] val) 因此,类似的模式可用于其他原始types。 有人可以解释为什么会这样吗?

如何将布局视图与活动相关联

在我的主要观点中,我有: public class PlayersActivity extends Activity { ViewFlipper flipper; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.playercontainer); flipper = (ViewFlipper) findViewById(R.id.flipper); } } 有了这个观点: 它正确地显示了第一个视图,但是我希望它连接到java类,所以我创建了一个FirstActivity类,我可以在第一个视图中控制所有组件,但是如何将first.xml布局与FirstActivity java类相连?

软键盘隐藏动作栏

我有一个简单的活动,文本视图后跟两个编辑文本。 当我开始输入时,软键盘会向上推动布局并隐藏操作栏,我将无法选择/复制/粘贴文本。 我的活动如下: 当我开始输入时,操作栏会被隐藏,就像这样 – 更重要的是,请注意,即使文本突出显示,也会丢失正常的复制粘贴栏: 我该怎么做才能确保操作栏不隐藏? 我已经尝试了一些来自SO的其他技巧(例如使用滚动视图),但没有一个工作。 该应用程序是使用带有抽屉活动的Android Studio 1.4.1向导创建的。 在我的活动清单中,我使用的是adjustPan。 我不想使用adjustResize。 android:windowSoftInputMode=”stateAlwaysHidden|adjustPan” 我的活动在这里: