找回密码
 注册帐号

扫一扫,访问微社区

unity开启安卓service失败

0
回复
325
查看
[ 复制链接 ]
4四处流浪
369/500
排名
14496
昨日变化

12

主题

133

帖子

369

积分

Rank: 4

UID
224854
好友
0
蛮牛币
246
威望
0
注册时间
2017-6-2
在线时间
168 小时
最后登录
2019-3-18
5蛮牛币
unity发布安卓程序,需要做保活处理,我使用开启service的方法,但是导出apk在手机上打不开,代码如下:
[Java] 纯文本查看 复制代码
public class Main2Activity extends UnityPlayerActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
            startService();//开启服务
    }

    //开启服务
    public void startService()
    {
        startService(new Intent(getBaseContext(),MyService.class));
    }
}


[Java] 纯文本查看 复制代码
package com.tomee.androidplugin;

import android.app.Notification;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.os.IBinder;
import android.support.v4.app.NotificationCompat;
import android.widget.Toast;

public class  MyService extends Service{


    /** 标识服务如果被杀死之后的行为 */
    int mStartMode;

    /** 绑定的客户端接口 */
    IBinder mBinder;

    /** 标识是否可以使用onRebind */
    boolean mAllowRebind;

    NotificationManager notificationManager;
    NotificationCompat.Builder notificationBuilder;
    Notification notification;
    /** 当服务被创建时调用. */
    @Override
    public void onCreate() {
        super.onCreate();
        initNotification();
    }

    private void initNotification() {

        notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {

            notificationBuilder = new NotificationCompat.Builder(this, "NoticeService");
            notificationBuilder.setSmallIcon(R.drawable.abc)
                    .setContentTitle("通知服务")
                    .setContentText("演示")
                    .setChannelId("car_notice");
            notification = notificationBuilder.build();
            NotificationChannel channel = new NotificationChannel("car_notice",
                    "CARNOTICE", NotificationManager.IMPORTANCE_LOW);
            notificationManager.createNotificationChannel(channel);
        } else {
            notificationBuilder = new NotificationCompat.Builder(this, "NoticeService");
            notificationBuilder.setSmallIcon(R.drawable.abc)
                    .setContentTitle("通知服务")
                    .setContentText("演示");
            notification = notificationBuilder.build();
        }

        notification.flags = Notification.FLAG_INSISTENT;
//        notificationManager.notify(NOTICE_ID, notification);
        startForeground(123, notification);

    }


    /** 调用startService()启动服务时回调 */
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        Toast.makeText(this, "服务已经启动", Toast.LENGTH_LONG).show();

        return START_STICKY;

    }

    /** 通过bindService()绑定到服务的客户端 */
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    /** 通过unbindService()解除所有客户端绑定时调用 */
    @Override
    public boolean onUnbind(Intent intent) {
        return mAllowRebind;
    }

    /** 通过bindService()将客户端绑定到服务时调用*/
    @Override
    public void onRebind(Intent intent) {

    }

    /** 服务不再有用且将要被销毁时调用 */
    @Override
    public void onDestroy() {
        super.onDestroy();
        Toast.makeText(this, "服务已经停止", Toast.LENGTH_LONG).show();
    }

}



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则