小编plu*_*ind的帖子

Android活动超过默认锁定屏幕

如何在锁定屏幕上显示ActivityDialog显示?

通过在Activity.onCreate()方法中设置各种窗口类型,我已经尝试在屏幕打开时显示我的锁定活动:

TYPE_PRIORITY_PHONE
TYPE_SYSTEM_ALERT
TYPE_KEYGUARD

和其他人一起SYSTEM_ALERT_WINDOWINTERNAL_SYSTEM_WINDOW权限.

解锁设备后,我的活动可见.

更新:

我实际上已经设法显示我自己的Activity而不是默认锁定屏幕.除非您使用HOME按钮,否则它可以完美运行

android dialog lockscreen android-windowmanager android-activity

72
推荐指数
3
解决办法
8万
查看次数

EditText和TabHost彼此不喜欢

我有一个EditText和TabHost包含2个选项卡的布局.Android 1.6.

我在下面的例子中使用硬件键盘.重现步骤:

  1. 显示活动时,EditText将获得焦点.

  2. 只要按任意键,EditText就会失去焦点,第一个标签会获得它.

  3. 我再次点击EditText并开始输入.

  4. 除非我按下任何数字按钮,否则它有效.第一个标签再次获得焦点.

  5. 我用轨迹球滚动回EditText.我现在可以打字了.

在步骤2,3中在焦点EditText上左/右使用跟踪球也会使EditText失去焦点.

这很奇怪.怎么处理这个?

main.xml布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="fill_parent"
    android:orientation="vertical">

    <EditText android:id="@+id/textfield" android:layout_width="fill_parent"
        android:layout_height="wrap_content" android:maxLines="1"
        android:lines="1" android:hint="Search" />

    <TabHost android:id="@android:id/tabhost" android:layout_width="fill_parent"
        android:layout_height="wrap_content" android:layout_weight="1">

        <LinearLayout android:orientation="vertical"
            android:layout_width="fill_parent" android:layout_height="fill_parent">


            <FrameLayout android:id="@android:id/tabcontent"
                android:layout_width="fill_parent" android:layout_height="wrap_content"
                android:layout_weight="1">

                <LinearLayout android:id="@+id/tab1"
                    android:layout_width="fill_parent" android:layout_height="wrap_content" />

                <LinearLayout android:id="@+id/tab2"
                    android:layout_width="fill_parent" android:layout_height="wrap_content" />

            </FrameLayout>

            <TabWidget android:id="@android:id/tabs"
                android:orientation="vertical" android:layout_width="fill_parent"
                android:layout_height="wrap_content" android:gravity="bottom" />

        </LinearLayout>

    </TabHost>

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

活动类:

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    TabHost tabs = (TabHost) this.findViewById(android.R.id.tabhost);
    tabs.setup();

    Button vBtn;

    TabSpec …
Run Code Online (Sandbox Code Playgroud)

android android-tabhost android-edittext

13
推荐指数
2
解决办法
4993
查看次数

MediaPlayer.seekTo()不适用于无缓冲位置

我使用MediaPlayer从网络播放一首mp3歌曲.数据源是HTTP URL.

让我们假设我们有以下游戏状态.

歌曲持续时间:1:00

目前进展:0:10

当前缓冲进度0:30

让我们说我想跳过一首歌的某些部分并向前寻求.我使用MediaPlayer.seekTo()方法.如果我寻求缓冲位置(0:20),它会正确执行.但是如果我寻找一个尚未缓冲的位置(0:40),MediaPlayer表现得很奇怪.它立即表明它已正确搜索而无需等待缓冲区填充.事实上,它继续在寻找之前的同一位置上演奏.从现在开始,MediaPlayer.getCurrentPosition()方法返回错误的位置.当播放到达其结尾并且调用OnCompletionListener.onCompletion回调时,当前媒体播放器位置远高于整个歌曲持续时间.

解决这个问题的任何想法?

android media-player

12
推荐指数
1
解决办法
1万
查看次数

ACTION_HEADSET_PLUG广播延迟

我有自己BroadcastReceiverIntent.ACTION_HEADSET_PLUG行动实例.实际物理拔出耳机与我BroadcastReceiver收到通知的时刻之间有大约1-2秒的延迟.

IntentFilter filter = new IntentFilter(Intent.ACTION_HEADSET_PLUG);
filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY - 1);
registerReceiver(new BroadcastReceiver() {

  @Override
  public void onReceive(Context context, Intent intent) {
    // my code here
  }
}, filter);
Run Code Online (Sandbox Code Playgroud)

任何想法如何减少延迟?

android broadcastreceiver headset

4
推荐指数
1
解决办法
2307
查看次数