小编Sna*_*ake的帖子

将数据发送到警报管理器广播接收器

我在这里遗漏了一些东西,我希望有人可以帮助我.我正在使用以下设置警报:

    AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);

    Intent broadcast_intent = new Intent(this, AlarmBroadcastReceiver.class);
    PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0,  broadcast_intent, 0);

    broadcast_intent.putExtra("test", "ValueReceived"); //data to pass
    Date date = someVariable.getDateTime();


    long triggerAtTime = date.getTime();

    alarmManager.set(AlarmManager.RTC_WAKEUP, triggerAtTime, pendingIntent);
Run Code Online (Sandbox Code Playgroud)

以及使用以下内容的广播接收器:

public class AlarmBroadcastReceiver extends BroadcastReceiver{

    @Override
    public void onReceive(Context context, Intent intent) {

        Toast.makeText(context, "Alarm has been received "+intent.getStringExtra("test"), Toast.LENGTH_LONG).show();

    }

}
Run Code Online (Sandbox Code Playgroud)

然而,意图显然是"空洞的".我看到getStringExtra的空值.因此数据不会传递给广播接收器.我究竟做错了什么?我怎样才能传递数据.

非常感谢

android broadcastreceiver alarmmanager

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

何时调用OnUpgrade以及如何获取oldVersion参数?

我正在为我当前的应用程序进行更新.我的应用程序使用SQLite DB,到目前为止我的版本1.我将需要在第二个版本中更改/引入新表.我做了我的研究,我发现要做到这一点,最好的方法是使用switch(case)语句,我以一种简化的方式对db进行更新.

我的问题是,android如何知道什么是旧版本onUpgrade().事实上,什么时候被召唤?.

因此,对于第一次下载我更新的应用程序的用户,我认为onUpgrade()不会被调用!android怎么会知道什么时候不打电话onUpgrade()

请为我澄清一下.我想提交我的第一个更新,我不想失去我辛苦赚来的用户:)

android android-sqlite

11
推荐指数
2
解决办法
7875
查看次数

对话框大小与背景图像不匹配

我正在使用Android SDK制作游戏.一路上,我需要显示弹出/对话框,就像用户可以升级的任何其他游戏一样.我遇到的问题是对话框的大小.我正在使用RelativeLayout,我正在使用"wrap_content"将背景设置为我的图像.

对话框占用内部视图大小(或Android设置的默认对话框最小大小,以较大者为准)的问题不是背景图像.如果我使用fill_parent,那么它会拉伸它.我花了几个小时和几个小时旋转我,我似乎无法找到一个有效的方式,窗口的大小与背景图像的大小相匹配

有什么建议?这是一个非常常见的用例,必须有办法!谢谢

这是一些布局内容

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:background="@drawable/popup"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >
    <ImageButton
        android:id="@+id/ibCloseDialog"
        android:background="@null"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/close" />

 <Button
        android:id="@+id/b1"
        android:background="@drawable/blue_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toLeftOf="@+id/b2"
        android:text="b1" />
    <Button
        android:id="@+id/b2"
        android:background="@drawable/blue_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:text="b2" />
    <Button
        android:id="@+id/b3"
        android:background="@drawable/blue_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/b2"
        android:text="b2" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

android android-dialog

11
推荐指数
1
解决办法
1253
查看次数

Soundpool或媒体播放器?

我正在为Android做一个纸牌游戏,我希望每次投掷一张牌,发挥投掷声音.它是同一个文件.我还会播放其他声音,如背景音乐和某些点击.您建议使用什么,声音池或创建MediaPlayback并播放它?每个人的优势/劣势是什么?我应该使用ogg还是mp3/wave文件?对此有任何帮助表示赞赏.谢谢

android

10
推荐指数
1
解决办法
2907
查看次数

获取相对于父级的触摸事件坐标

我有一个线性布局,其中有一个图像我试图获取图像的触摸事件坐标相对于包含它的父级.你知道我能得到这些吗?getX和getY返回相对于self的位置

android

9
推荐指数
2
解决办法
9880
查看次数

保存到内部存储器的文件列表

我的android应用程序将一些统计信息保存到内部存储.每个文件名的格式为"appname-currentDate"

我在想:

  1. 当我保存到内部存储器时,是否有一个特定的文件夹分配给我的应用程序,或者我的文件是否与同一目录中其他应用程序的文件一起保存.
  2. 有没有办法知道我的应用程序保存到内部存储的文件列表

非常感谢.

android

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

应用模块与库模块

我对库模块和应用模块之间的区别感到困惑。我确实用谷歌搜索过,但我没有发现明显的区别。Android Studio 文档介绍了如何将应用程序模块转换为库模块。

真正的区别是什么?你什么时候用什么?在我看来,两者本质上是一样的。

谢谢

android android-library

9
推荐指数
1
解决办法
4904
查看次数

何时在java中使用"static"的这些变体

有人可以解释以下情况之间的区别以及我们在哪里使用它们?谢谢大家

class A{
  static public void methodA()
}

static class B{
  static public void methodB()
}

static class C{
  public void methodC()
}
Run Code Online (Sandbox Code Playgroud)

编辑:大家好,谢谢你的回答.我也许还不够清楚.我知道除非它们是内部类,否则不能将类B和C声明为静态.我在你的答案中,请假设他们是内部阶级.我想知道何时将它们声明为静态,甚至何时声明它们的方法是静态的.我知道非静态类中的静态方法意味着您可以从任何地方调用它,并且通常执行非特定于对象的常规操作.但是你为什么要声明静态类呢?在您重新阅读我的编辑并接受最具说明性的答案后,我会再次检查您的答案

java

8
推荐指数
1
解决办法
177
查看次数

无限循环,如何在Eclipse中知道现在正在运行什么代码?

我正在使用eclipse在我的设备中运行一些android/java代码.有时代码似乎陷入了循环.有时候它有效.我想知道,在日食中是否有一种方法我可以告诉它显示当前运行的是什么?甚至最后一种方法叫做?我想知道这个"代码卡住"的位置,以便我可以解决它.插入将无济于事,因为我需要代码在没有停止的情况下运行以便重现

请帮忙

java eclipse android

8
推荐指数
1
解决办法
7260
查看次数

setX,setTranslationX,setLeft,LayoutParam.leftMargin,Matrix ..有什么区别

关于设置视图位置的另一个问题.如果你想移动一个视图,你可以做setX,setTranslationX,setLeftLayoutParam.leftMargin Offcourse也有覆盖onDraw方法和使用Matrix/Bitmap/Canvas操作.

我想知道有什么区别.这些都是ultimetly调整相同的值,即视图的x坐标吗?对于未来的读者而言,将它全部放在一个帖子中会很好

到目前为止,我知道,

  • LayoutParam.LeftMargin:适用于所有API(特定于Api 8)
  • SetTranslation:视图的原始左边界与新左边界之间的差异.虽然我听说也许它不是持久的?

任何人都可以了解差异,如果它们影响不同的属性或相同的属性?

android

8
推荐指数
1
解决办法
1142
查看次数