小编And*_*r15的帖子

AdView导致Chrome崩溃?

我的一个活动中有一个广告.当我参加此活动时,我会在模拟器上看到一个对话框,告诉我Chrome已停止,广告没有显示任何内容.

我检查了代码本身,我很确定它符合应有的 -

Activity.xml

<com.google.android.gms.ads.AdView
            android:id="@+id/adView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            ads:adSize="BANNER"
            ads:adUnitId="@string/banner_ad_unit_id"></com.google.android.gms.ads.AdView>
Run Code Online (Sandbox Code Playgroud)

Activity.java

mAdView = (AdView) findViewById(R.id.adView);
        AdRequest adRequest = new AdRequest.Builder().build();
        mAdView.loadAd(adRequest);
Run Code Online (Sandbox Code Playgroud)

这是logcat -

09-08 09:26:47.779 5777-5777/? D/EGL_emulation: eglCreateContext: 0x872ca5e0: maj 2 min 0 rcv 2
09-08 09:26:47.783 5777-5777/? D/EGL_emulation: eglMakeCurrent: 0x872ca5e0: ver 2 0 (tinfo 0x8379e7b0)
09-08 09:26:47.784 5892-5892/? E/asset: setgid: Operation not permitted
09-08 09:26:47.795 5878-5878/? W/ResourceType: Entry identifier 0xc is larger than entry count 0x8
09-08 09:26:47.795 5878-5878/? D/AndroidRuntime: Shutting down VM
09-08 09:26:47.795 5878-5878/? …
Run Code Online (Sandbox Code Playgroud)

android admob

6
推荐指数
2
解决办法
624
查看次数

removeEventListener无法在Firebase数据库上运行

我在Firebase数据库的根目录上设置了一个监听器 -

database = FirebaseDatabase.getInstance();
rootDB = database.getReference();
Run Code Online (Sandbox Code Playgroud)

我有一个听众设置如下 -

groupListener = (new ValueEventListener() {

@Override
public void onDataChange(DataSnapshot dataSnapshot) {

Log.i("ValueEventListener", "Count :" + dataSnapshot.getChildrenCount());
.... more code...
Run Code Online (Sandbox Code Playgroud)

我附上听众如下 -

rootDB.addValueEventListener(groupListener);
Run Code Online (Sandbox Code Playgroud)

然后当我加载一个新的活动时,我想让它停止听,所以我使用 -

rootDB.removeEventListener(groupListener);
Run Code Online (Sandbox Code Playgroud)

它似乎在继续倾听,谁能告诉我我做错了什么?

我知道我可以使用单个事件监听器,但我希望它在此活动中保持监控,但在其他活动中则不行.

谢谢!

android event-listener firebase firebase-realtime-database

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

接收器停止在奥利奥接收

我理解服务等因此受到限制,因此我的接收器已停止在Android Oreo中工作.

我有这个代码启动服务 -

Intent intent = new Intent(this, MyService.class);
intent.putExtra("Time", locationUpdatesTime);
intent.putExtra("Dist", locationUpdatesDistance);
startService(intent);
Run Code Online (Sandbox Code Playgroud)

我在我的服务中有这个 -

Intent intent = new Intent();
intent.setAction("com.androidandyuk.laptimerbuddy");
intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
intent.putExtra("Lat", thisLat);
intent.putExtra("Lon", thisLon);

sendBroadcast(intent);
Run Code Online (Sandbox Code Playgroud)

但我的接收器从未被调用过.搜索过后,我想我必须注册我的接收器,但我无法弄清楚我是如何使用正确的语法对其进行编码的.有人可以帮忙吗?

如果你想投票给我,我会很感激,如果你会评论为什么,所以我可以学习,因为我找到了答案,找不到/理解它,我想我已经提出了问题,因为我应该:-)

非常感谢!

更新尝试使用LocalBroadcastManager.

在MainActivity我有 -

BroadcastReceiver mMessageReceiver;
Run Code Online (Sandbox Code Playgroud)

onCreate我有 -

mMessageReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            // Get extra data included in the Intent
            String message = intent.getStringExtra("message");
            Log.i("receiver", "Got message: " + message);
        }
    };
    LocalBroadcastManager.getInstance(this).registerReceiver(mMessageReceiver, new IntentFilter("custom-event-name"));
Run Code Online (Sandbox Code Playgroud)

在我的服务中,onLocationChanged

    Log.i("sender", "Broadcasting message"); …
Run Code Online (Sandbox Code Playgroud)

android broadcastreceiver

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