小编Sia*_*oli的帖子

Firebase两次发送推送通知

我写了一个非常简单的Android应用程序来测试firebase推送通知,我收到两次通知.

这是清单服务:

<service
        android:name="com.google.firebase.messaging.FirebaseMessagingService">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT"/>
        </intent-filter>
    </service>
    <service
        android:name="com.google.firebase.iid.FirebaseInstanceIdService">
        <intent-filter>
            <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
        </intent-filter>
    </service>
Run Code Online (Sandbox Code Playgroud)

这是应用程序gradle:

    compile 'com.google.android.gms:play-services:9.0.0'
    compile 'com.google.firebase:firebase-core:9.0.0'
    compile 'com.google.firebase:firebase-messaging:9.0.0'
}
apply plugin: 'com.google.gms.google-services'
Run Code Online (Sandbox Code Playgroud)

这是项目级别的gradle:

classpath 'com.google.gms:google-services:3.0.0'
Run Code Online (Sandbox Code Playgroud)

android firebase firebase-cloud-messaging firebase-notifications

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

/ etc/apache2/conf-available/phpmyadmin中没有phpmyadmin.conf

我按照本教程,我找不到本教程第二步的phpmyadmin.conf.我只有/ etc/apache2/conf-available /下面的文件

charset.conf

其他的虚拟主机存取log.conf

JavaScript的common.conf

security.conf

本地化错误,pages.conf

服务-CGI-bin.conf

我要编辑哪一个?

apache ubuntu phpmyadmin

10
推荐指数
2
解决办法
2万
查看次数

使用动画隐藏视图并将可见性设置为不闪烁屏幕

我想隐藏dicelayout(dicelout在mainboardlinear中),但是当动画完成时,由于View.GONE,屏幕闪烁!如果我将setfillafter设置为true并清除View.GONE,我不再有flash问题了,但在这种情况下我的主板内的scrollview无法滚动!

                final RelativeLayout rLayout=(RelativeLayout)findViewById(R.id.dicelayout);


            Animation animation=new TranslateAnimation(0, 0, 0, -rLayout.getHeight());
            animation.setFillAfter(false);
            animation.setFillBefore(true);
            animation.setDuration(1000);
            ((LinearLayout)findViewById(R.id.mainboardlinear)).startAnimation(animation);


            Thread t=new Thread(new Runnable() {
                public void run() {
                try {
                    Thread.sleep(999);
                    runOnUiThread(new Runnable() {
                        public void run() {

                        rLayout.setVisibility(View.GONE);
                        }
                    });

                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }   
                }
            });
            t.start();
Run Code Online (Sandbox Code Playgroud)

animation android

7
推荐指数
1
解决办法
4841
查看次数

exoplayer示例上的自定义UI

**如果你不知道什么,我真的需要帮助不给我一个负面的观点:| 如果有什么事情打扰你评论**

我想在Exoplayer中为我的播放器编写自定义UI(更改暂停播放按钮或添加播放器速度等新按钮等).

我使用来自github的Exoplayer示例,在将代码添加到我的原始项目之前,我想在官方示例上测试自定义UI.

我在Stackoverflow中读取页面并关于自定义UI但我真的很困惑!

为什么改变一些按钮图像或改变它们的位置必须如此困难:)我怎么能处理这个?

编辑

这是示例 https://github.com/google/ExoPlayer/tree/master/demo

我读了这两篇文章:

http://www.brightec.co.uk/ideas/custom-android-media-controller

http://code.tutsplus.com/tutorials/create-a-music-player-on-android-user-controls--mobile-22787

根据这个链接 "而不是从头开始编写自己的媒体控制器,你可以从Android中包含的MediaController类开始"我问这个问题,因为我无法在exoplayer库上执行此步骤,并且教程是为默认编写的媒体播放器

android mediacontroller exoplayer

7
推荐指数
3
解决办法
2万
查看次数

在MVP结构中哪个类负责保存列表项以及如何通知数据更改

我试图重构我的一个活动类来实现mvp(使用mvp mosby库).我有一个RecyclerView,在这个视图中有一些项目在运行时会对它们进行一些更改.例如,我做了一些I/O操作并改变了一行.

我认为将我的项目保留在演示者课程中会更好; 这是什么最好的做法?将此保留在1)演示者或2)活动中或3)仅保留适配器中的视图相关项和演示者中的所有其他项.

活动现在直接保留项目并更改活动中的项目行,然后通知适配器.是不是更好地在适配器中移动所有这一行并通知适配器类中的适配器?例如,我想要一些row.where的更改图标,哪个类负责?适配器?活动?现在我想在适配器中实现它:

changeItemIcon(int position, int iconRes){
    mImages.get(position).setICon(iconRes);
    notifyItemChanged(position);
}
Run Code Online (Sandbox Code Playgroud)

我在活动上调用此方法并从演示者调用活动方法.

好吗?这样做的最佳做法是什么?

UPDATE

我也发现这个问题(使用RecyclerView适配器更新数据的最佳方法),使用适配器方法更改项目.但修改呢?我需要继续参考我活动中的项目吗?

java mvp android code-cleanup android-adapter

6
推荐指数
1
解决办法
2370
查看次数

Exoplayer与Vitamio

我正在写使用从服务器(有时是从本地文件)使用HLS视频流的android应用。

哪个更容易实现?哪一个具有更好的性能和功能?我想知道关于exoplayer和vitamio(标准版)的优缺点。

android video-streaming http-live-streaming vitamio exoplayer

5
推荐指数
1
解决办法
1704
查看次数

如何正确地将库和模块导入android studio

我想在我的项目中使用这个库(https://github.com/ikimuhendis/LDrawer).但是当我将它作为新模块导入时,我看不到它在哪里?然后出现一些gradle错误,如下所示:

找不到runProguard

然后我用minifyEnabled替换它然后发生此错误"更改gradle版本错误:库项目无法设置applicationId.在默认配置中将applicationId设置为"

然后我清除applicationId但我仍然有这个错误!我无法理解项目中的示例文件夹,库文件夹或根文件夹是什么!我必须导入哪一个?!

我导入示例项目和导入新项目的项目的根,但我有错误!最近我从eclipse bcz迁移到Android工作室很多使用android studio的开源项目.我猜我所有的问题因为我无法正确理解android studio结构!

android android-studio

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

我该如何模拟和测试这门课?

以下是我想测试的代码.

public class Demo {

   private static final List<Pair<String, String>> mList;

   static {
     mList = new ArrayList<>();
     mList.add(new Pair<>("F0", "T1"));
     mList.add(new Pair<>("F1", "T2"));
     mList.add(new Pair<>("F2", "T3"));
   }

   public String getStr(int pos) {
     return mList.get(pos).first;
   }
}
Run Code Online (Sandbox Code Playgroud)

我是一个Android开发人员.我在测试和模拟代码时遇到了一些麻烦.我使用了mockito.我已经尝试了一些代码来测试它,但结果并不是我的期望.

1.第一次尝试

@Test
public void test(){
    Demo demo=new Demo();
    assertEquals(demo.getStr(0),"F0");
    /**
    *  java.lang.AssertionError: 
    *  Expected :null 
    *  Actual   :F0
    */
}
Run Code Online (Sandbox Code Playgroud)

2.第二次尝试

@Test
public void test() {
    Demo demo = mock(Demo.class);

    doCallRealMethod().when(demo).getStr(0);
    assertEquals(demo.getStr(0), "F0");
    /**
     *  java.lang.AssertionError: 
     *  Expected :null
     *  Actual   :F0
     */ …
Run Code Online (Sandbox Code Playgroud)

android unit-testing mockito

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