相关疑难解决方法(0)

Android服务需要始终运行(从不暂停或停止)

我创建了一项服务,并希望始终运行此服务,直到我的手机重新启动或强制关闭.该服务应该在后台运行.

创建的服务和启动服务的示例代码:

启动服务:

Intent service = new Intent(getApplicationContext(), MyService.class);
getApplicationContext().startService(service);
Run Code Online (Sandbox Code Playgroud)

服务:

public class MyService extends Service {

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        // TODO do something useful
        HFLAG = true;
        //smsHandler.sendEmptyMessageDelayed(DISPLAY_DATA, 1000);
        return Service.START_NOT_STICKY;
    }

    @Override
    public IBinder onBind(Intent intent) {
        // TODO for communication return IBinder implementation
        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)

清单声明:

<service
    android:name=".MyService"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
</service>
Run Code Online (Sandbox Code Playgroud)

是否可以像应用程序暂停和其他任何操作一样运行此服务.一段时间后,我的应用程序暂停,服务也暂停或停止.那么如何在后台运行此服务并始终如此.

java service android

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

在Android Studio中使SignalR工作的步骤

我正在尝试将SignalR引入我的Android Studio项目.

我成功地遵循了关于SignalR入门的教程,所以现在我有了工作Hub.该教程中的客户端是javascript,我在PC上的网页(在Chrome中)以及在我的家庭LAN上通过WiFi在我的Android手机上运行正常.

然后我去了Android java客户端工作.我已经在Android Studio中安装了一个Android应用程序项目Hub,作为下一步,我想与之进行对话.

我下载了适用于Android的官方Microsoft java客户端,作为zip.

然后我将其解压缩并将其作为项目加载到Android Studio中.它构建没有错误.

问题#1:这个项目只给我一个AAR,而不是一个JAR.我已经想出如何在Android Studio中使用jar,所以如果有一种方法可以在这个时刻创建一个jar,我可能会让这个工作.

此时我将依赖项包含到我的应用程序项目中.readme.md说:

添加signalr-client-sdk.jar,signalr-client-sdk-android.jar gson库作为项目的gradle依赖项.

所以我试着尽可能地跟着它.这是我的build.gradle:

compile 'com.google.code.gson:gson:2.3.1'
compile files('libs/signalr-client-sdk.jar')
compile files('libs/signalr-client-sdk-android-release.aar')
Run Code Online (Sandbox Code Playgroud)

问题2:将aar作为模块导入Android Studio中的app项目后,它仍然没有看到必要的命名空间来使主要语句工作.这是主要声明(Android中SignalR的hello world,编译方式):

Platform.loadPlatformComponent(new AndroidPlatformComponent());
Run Code Online (Sandbox Code Playgroud)

起初,它没有拿起任何东西,然后拿起import microsoft.aspnet.signalr.client.Platform;Platform.它仍然没有什么线索来import进行AndroidPlatformComponent,所以我坚持,直到我能过去这一点.

如你所知,Android Studio中有很多文件,我不想在我知道你想看哪些文件之前将它们全部喷出来.如果你告诉我你想看哪些文件,我会将它们添加为编辑.

signalr android-studio

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

SignalR Client Hub上的On事件不会被调用

我似乎与SignalR的JS Client Hub有问题.

问题是'on'处理程序似乎不起作用 - 它不会产生错误,但不会接收服务器发送的任何信号.下面的代码显示了一个提取,我调用服务器(使用调用)工作正常 - 然后在服务器上我回调acceptHubData应该在客户端上获取但不是.

我的目标是当导航到页面时,每个页面将打开与特定集线器的连接,并在用户移动到另一个页面时释放此连接!

编辑:使用以下代码片段工作,但我想知道为什么下面的代码使用'on'事件不起作用!

    var superHub = $.connection.mySuperHub;

    superHub.client.acceptHubData = function (data) {
        $('<li>hello there' + data + '</li>').prependTo($('#ul1'))
    }

    $.connection.hub.start().done(function () {
        $('<li>done phase 1</li>').prependTo($('#ul1'))
    });
Run Code Online (Sandbox Code Playgroud)

任何帮助将非常感激!

这是客户端代码(以js为单位)

$(document).ready(function () {

    var myHub;

    try {

        var connection = $.hubConnection();

        connection.start().done(function () {

            myHub = connection.createHubProxy("mySuperHub");

            myHub.on('acceptHubData', function (data) {
                alert(data);   // THIS IS NOT CALLED!
            });

            myHub.invoke('AcceptSignal', "hello from the client2");

        });

    }
    catch (e) {
        alert(e.message);
    }
});
Run Code Online (Sandbox Code Playgroud)

这是服务器代码:

[HubName("mySuperHub")]
public …
Run Code Online (Sandbox Code Playgroud)

signalr signalr-hub

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

Android应用没有从SignalR中心接收数据

我已经阅读了这些主题:
如何在Android Android Client中使用SignalR
但是.net客户端从SignalR服务器获取数据

我用Android编写了一个与SignalR配合使用的简单聊天系统.
它应该是客户端发送消息(通过SendMessage在服务器上调用方法),服务器应该NewMessage在客户端上调用该方法.

这是我ChatHub用C#编写的类(简化).

public class ChatHub : Hub
{
    // Store the clients connections Id
    static readonly List<string> _connectedClients;

    public override Task OnConnected()
    {
        // Keep connections id
        // This section works fine and when the android device connects to the server,
        // Its connection id will stored.
        _connectedClients.Add(Context.ConnectionId)

        //... other codes
    }

    public void SendMessage(string message)
    {
        foreach (var connectionId in _connectedClients)
        {
            // according to the …
Run Code Online (Sandbox Code Playgroud)

c# java android chat signalr

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

在android studio中进行SignalR集成

我在我的项目中使用signalR lib.但是我无法自己编译https://github.com/SignalR/java-client的库- 我在互联网上找到它们.但似乎没有完整(缺少WebsocketTransport)

当我编译https://github.com/SignalR/java-client时,我得到两个库,并将它们粘贴到我的app.gradle中 -

compile files ('libs/signalr-client-sdk.jar')
compile files ('libs/signalr-client-sdk-android.jar')
Run Code Online (Sandbox Code Playgroud)

Progects构建很糟糕,但是当我按下run时 - 它失败了.这是堆栈跟踪 -

  UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dx.cf.iface.ParseException: bad class file magic (cafebabe) or version (0034.0000)
at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:472)
at com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)
at com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388)
at com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)
at com.android.dx.command.dexer.Main.processClass(Main.java:704)
at com.android.dx.command.dexer.Main.processFileBytes(Main.java:673)
at com.android.dx.command.dexer.Main.access$300(Main.java:83)
at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:602)
at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166)
at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
at com.android.dx.command.dexer.Main.processOne(Main.java:632)
at com.android.dx.command.dexer.Main.processAllFiles(Main.java:510)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:280)
at com.android.dx.command.dexer.Main.run(Main.java:246)
at com.android.dx.command.dexer.Main.main(Main.java:215)
at com.android.dx.command.Main.main(Main.java:106)
...while parsing microsoft/aspnet/signalr/client/Action.class
Run Code Online (Sandbox Code Playgroud)

1错误; 中止错误:任务':app:preDexDebug'的执行失败.

com.android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException:进程'命令'C:\ Program Files\Java\jdk1.8.0_45\bin\java.exe''以非完成零退出值1

我不知道该怎么办.我甚至试图编译这个项目的分叉,但是得到了相同的结果,同样的错误.需要任何帮助,谢谢!

UPDATE

在我的应用程序类中我有

Platform.loadPlatformComponent(new AndroidPlatformComponent());
Run Code Online (Sandbox Code Playgroud)

在我的app.gradle中:

compile …
Run Code Online (Sandbox Code Playgroud)

android signalr signalr.client

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

如何在Flutter上使用SignalR?

嗨,伙计们,我正在尝试与使用SignalR建立聊天通信的Asp.Net核心2.1应用程序进行通信,但我无法弄清楚使用颤振实现这一目标的最佳方法是什么.

我已经搜索了一些库来做这件事,但我找到的那个与Flutter不兼容,只是使用Dart web,因为它使用原始的SignalR.js来包装方法.

你们有关于如何完成这项任务的任何提示吗?

long-polling websocket flutter asp.net-core-signalr

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

如何使用Microsoft Java-Client接收SignalR广播消息?

我需要将消息从ASP.NET服务器推送到Android设备,以便在记录状态发生变化时发出通知.所以我想使用来自GitHub的新的Microsoft SignalR Java-Client,使用Eclipse与Android ADT Bundle和Java.

我是Java和SignalR的新手.我有使用HTML工作的SignalR Hub和JavaScript客户端,它可以发送和接收消息.但是我无法进入下一步并让Java-Client在Eclipse/Java/Android中运行.我不知道如何注册接收广播消息.当我使用HTML/JavaScript页面发送消息时,我没有在Android应用程序中,在模拟器中,在Eclipse中收到消息.我能够

我有以下ASP.NET SignalR Hub.cs文件设置:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using Microsoft.AspNet.SignalR;
    using Microsoft.AspNet.SignalR.Hubs;
    using System.Threading.Tasks;

    public class PtThroughputHub : Hub
    {
        public void SendAll(string message)
        {
            Clients.All.broadcastMessage(message);
        }
        public void SendGroup(string groupName, string message)
        {
            Clients.Group(groupName).broadcastMessage(message);
        }
        public Task JoinGroup(string groupName)
        {
            return Groups.Add(Context.ConnectionId, groupName);
        }
        public Task LeaveGroup(string groupName)
        {
            return Groups.Remove(Context.ConnectionId, groupName);
        }
    }
Run Code Online (Sandbox Code Playgroud)

在JavaScript中,我还可以使用从ASP.NET Hub.cs自动生成的Hubs.js文件来通过Hub发送和接收消息.

<script src="Scripts/jquery-2.1.0.min.js"></script>
<!--Reference the SignalR library. -->
<script src="Scripts/jquery.signalR-2.0.3.min.js"></script>
<!--Reference the …
Run Code Online (Sandbox Code Playgroud)

java eclipse android signalr

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

什么是asp.net网站活动和Android应用程序之间的最佳沟通方式?

我们有一个asp.net Web应用程序,它具有通知,消息等用户活动的功能.我们也为这个网络应用程序提供了一个原生的Android应用程序.现在我们必须创建用户活动的功能,如通知和消息传递.

例如.用户A喜欢或跟随用户B或进行任何活动,这些活动将通知用户B通知或消息系统,如Facebook.如果你在某些活动中标记你的朋友或者喜欢你的朋友活动,那么你的朋友会通过android app中的通知知道它在网站上显示

在android中检测用户活动并获得推送通知的最佳方式或有效方法是什么.

我做了一些研究,但没有得到正确的想法/轨道.

我有一些喜欢的

1)使用Parse的Android推送通知

2)使用GCM的Android推送通知

3)Android Service BroadcastReciever

asp.net notifications android broadcastreceiver push-notification

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

使用 SignalR 进行 Flutter 推送通知

我在 Flutter 应用程序上使用 SignalR 推送通知,效果很好。我从后端获取消息并使用 flutter_local_notifications 显示通知。问题是 SignalR 服务会在一段时间后关闭。如何让我的应用程序保持在后台运行?甚至重新启动?

这是我的代码:

import 'dart:async';
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:isolate_test/Model/UserMessageModel.dart';
import 'package:signalr_core/signalr_core.dart';
import 'EndPointService.dart';
import 'NotificationService.dart';

class SignalRProvider {
  static String appName = "NOTIFICATION";
  static String? userName = "";
  static String deviceName = "android_app";
  static List<UserMessageModel> messages = <UserMessageModel>[];

  HubConnection connection = HubConnectionBuilder()
      .withUrl(
          'my_url',
          HttpConnectionOptions(
            logging: (level, message) => print(message),
          ))
      .withAutomaticReconnect()
      .withHubProtocol(JsonHubProtocol())
      .build();
  Function(bool update)? onMessagesUpdateCallback;
  SignalRProvider({
    this.onMessagesUpdateCallback,
  });

  setUsername(String username) {
    userName = username;
  }

  Future initSignalR(BuildContext context) async …
Run Code Online (Sandbox Code Playgroud)

signalr dart flutter

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

Android SignalR java-client:没有收到HubConnection上的所有SignalR消息

尝试了几个选项后,我无法在Android应用程序上收到所有SignalR消息.在我看来它似乎是与LongPollingTransport相关的东西,但我找不到解决方案...我收到所有的longPolling消息,但有时它进入处理程序,有时它尝试再次连接到服务器而不进入处理程序方法.

我试着按照这里的例子.

代码很简单:

public void startNewSignalR(){

    Platform.loadPlatformComponent(new AndroidPlatformComponent());

    // Create a new console logger
    Logger logger = new Logger() {
        @Override
        public void log(String message, LogLevel level) {
            System.out.println(message);
        }
    };

    Uri signalRSource = Uri.parse(serverUrl);
    HubConnection connection = new HubConnection(signalRSource.toString(), "", true, logger);
    eventHub = connection.createHubProxy("eventHub");

    connection.error(new ErrorCallback() {

        @Override
        public void onError(Throwable error) {
            System.err.println("There was an error communicating with the server.");
            System.err.println("Error detail: " + error.toString());

            error.printStackTrace(System.err);
        }
    });

    // Subscribe to the connected event
    connection.connected(new …
Run Code Online (Sandbox Code Playgroud)

java android java-client signalr

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