Articles of android

Android:如何在AlertDialog中覆盖onBackPressed()?

我有一个AlertDialog dlgDetails ,它显示在另一个AlertDialog dlgMenu 。 如果用户按下dlgDetails中的后退按钮,我希望能够再次显示dlgMenu,如果他按下对话框,则只需退出对话框。 我认为最好的方法是覆盖onBackPressed for dlgDetails,但我不知道如何做到这一点,因为必须使用Builder间接创建AlertDialogs。 我正在尝试创建派生的AlertDialog( public class AlertDialogDetails extends AlertDialog { …} ),但我想我还必须在该类中扩展AlertDialog.Builder以返回AlertDialogDetails,但是不是更简单的方法吗? 如果没有,你会如何重写生成器?

异步任务Android执行

这是在一次Android采访中被问到的。 我被问到是否可以从异步任务1的doInBackground()方法启动另一个异步任务(让它成为Task2)(让它成为Task1)。 我已经阅读了以下文档: 必须在UI线程上创建任务实例。 必须在UI线程上调用execute(Params …)。 根据这些陈述,我认为不应该从另一个任务的后台方法启动任务。 此外,异步任务有UI方法(不能在后台线程上使用),所以加强了我的论点,我回答它是不可能的。 在检查一个简单的演示应用程序时,我看到它确实可以这样做。 一些演示代码: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mContext = this; init(); Log.v (“gaurav”, “Thread is : ” + Thread.currentThread().getName()); Task1 task = new Task1(); task.execute(); } class Task1 extends AsyncTask { @Override protected Object doInBackground(Object… params) { // TODO Auto-generated method stub Log.v (“gaurav”, […]

如何使用配置活动创建应用小部件,并首次更新它?

这真让我抓狂。 即使使用推荐的做法,我也不知道如何从配置活动更新应用小部件。 为什么不在应用程序小部件创建上调用更新方法超出了我的理解。 我想要的是:一个包含项目集合(带有列表视图)的应用程序小部件。 但是用户需要选择一些东西,所以我需要一个配置活动。 配置活动是ListActivity : @TargetApi(Build.VERSION_CODES.HONEYCOMB) public class ChecksWidgetConfigureActivity extends SherlockListActivity { private List mRowIDs; int mAppWidgetId = AppWidgetManager.INVALID_APPWIDGET_ID; private BaseAdapter mAdapter; @Override protected void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); setResult(RESULT_CANCELED); setContentView(R.layout.checks_widget_configure); final Intent intent = getIntent(); final Bundle extras = intent.getExtras(); if (extras != null) { mAppWidgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID); } // […]

如何在Android Studio中添加TODO并跟踪项目问题(不在源代码中)

我正在编写一个新的更好版本的旧Android项目,它将修复许多UI错误,但也有一个更好的设计,需要集成一些新function。 当我浏览源代码时,我可以在源代码中看到我所有的新老TODO,但是我记得并忘记了我将来要做的事情并且还不适合任何来源。 Eclipse在项目中有一个简单的任务列表,您可以在其中记下并跟踪该项目所需的所有错误修复和新function。 非常便利! 有没有办法在项目中在Android Studio中添加这样的任务/问题/注释/待办事项,而不在源中的特定位置添加它们?

Adb以非常慢的速度传输文件

我的机器上有adb问题,它在OSX Yosemite上运行。 我试图adb install一个44mb apk, adb install apk需要5分钟。 我试图缩小问题,似乎adb push与此有关。 我测试了adb push -p src dest以查看传输进度。 传输适用于小文件,传输速率约为1300KB / s。 传输大文件时速度大大减慢,传输速率约为120KB / s。 传输总是在字节8388608 /总速度减慢。 我使用OSX Yosemite在同事的Mac上使用相同的设备和相同的USB线测试了adb push,它运行正常。 我不知道是什么原因引起了这个问题,有人可以帮帮我吗?

查看由Android应用程序创建的私人文件

我有一个由设置为MODE_PRIVATE的应用程序编写的xml文件,但我现在想要在手机外读取该文件,以进行调试。 在Eclipse中,我可以访问应用程序生成的其他文件并将它们复制到我的计算机上,但我甚至看不到这个私有文件。 仅将文件更改为MODE_WORLD_READABLE文件似乎没有帮助。 我认为该文件存储在无法从手机中删除的内部“SD卡”上,但文件资源管理器中还有两个其他文件夹为空或无法访问:asec和安全。 有谁知道如何访问该文件?

如何知道Android中的对话框是否被解除?

如果对话框被解除,我想为我的背景做一些事情。所以我想知道对话框是否被解雇

同时将一个animation应用于多个视图

所以我想同时旋转一些视图,所有视图都使用相同的旋转规格。 问题在于,由于某种原因,旋转对第二个元素的作用不同。 显然,这与animation对象实际上在这两行代码之间改变状态有关。 显然我可以创建一个单独的Animation对象并应用它,但我觉得有一种更简单的方法(我有大约15个视图) 仅正确旋转第一个视图: Animation rotateAnim = AnimationUtils.loadAnimation(this, R.anim.rotationtoportrait); target.startAnimation(rotateAnim); lightBtn.startAnimation(rotateAnim); 正确旋转 Animation rotateAnim = AnimationUtils.loadAnimation(this, R.anim.rotationtoportrait); Animation rotateAnim2 = AnimationUtils.loadAnimation(this, R.anim.rotationtoportrait); target.startAnimation(rotateAnim); lightBtn.startAnimation(rotateAnim2); XML: 有人有主意吗?

带操作栏sherlock的菜单

我需要一个示例或教程,介绍如何使用操作栏sherlock添加菜单项 当我使用简单的菜单与导入 import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; 我打电话的时候 @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.settings_menu, menu); return true; } public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.goToSettings: startActivity(new Intent(this, SetPreference.class)); return true; default: return super.onOptionsItemSelected(item); } } 然后我得到了无法覆盖SherlockActivity错误的最终方法。

即使使用Lock,Wifi也会睡觉

总结:即使获得wifi锁定,当手机使用电池运行时,WiFi会在一段时间后断开连接。 我已经使用启动线程的按钮将问题简化为单个活动。 它只发送100.000个字符串到PC上运行的echo服务器(每100ms一个字符串)。 见下面的代码。 我可以通过WireShark查看流量,并且echo服务器也会显示字符串。 注意在开始发送之前(当然是在发布之后)如何获取WiFi和电源锁。 但是,当手机使用电池运行并且用户关闭手机时,它会继续发送字符串一段时间,然后WiFi断开连接,手机甚至不响应ping。 从600s到6000s需要断开连接(数字是那么圆,所以我认为它们很重要)。 它在A / C连接时非常有效,所以我猜它与电源管理有某种关系。 为了测试它我只是启动活动,启动echo服务器,启动WireShark,按“开始”按钮( android:onClick=”doStart” ),阻止手机并将其放在桌面上。 我去吃午餐或其他什么,经过600-6000s我可以看到WireShark上的tx错误,echo服务器已经停止接收流量而手机没有响应ping。 手机是2.2,WiFi政策设置为“15米后睡觉”。 package Odroid.test; import java.io.IOException; import java.io.InputStream; import java.io.PrintStream; import java.net.Socket; import java.net.UnknownHostException; import java.util.Date; import android.app.Activity; import android.content.Context; import android.net.wifi.WifiManager; import android.os.Bundle; import android.os.PowerManager; import android.view.View; import android.widget.Button; public class Test extends Activity { PowerManager _powerManagement = null; PowerManager.WakeLock […]