2

无法在 InstantApp 功能模块中使用前台服务。低于运行时安全异常。

java.lang.RuntimeException:无法启动活动 ComponentInfo{ .XYZActivity}:java.lang.SecurityException:方法类 android.app.ActivityManagerProxy.getServices 不适用于即时应用

Android文件说,

受限功能:在用户不知情的情况下在设备上运行。前台服务可用。即时应用程序只能通过支持应用程序链接的活动启动,因此服务、内容提供者或广播接收器将无法启动您的应用程序。

代码:

// Starting service
getAppContext().startService(new Intent(getAppContext(), FirebaseAuthService.class));


// Foreground service class
public class FirebaseAuthService extends Service {

    private static final String TAG = "FirebaseAuthService";
    private boolean isRunning = false;

    private String mUserId;
    private FirebaseAuth mAuth;

    @Override
    public void onCreate() {
        Log.d(TAG, "Service onCreate");

        startForeground();
        isRunning = true;
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        Log.i(TAG, "Service onStartCommand");

        new Thread(new Runnable() {
            @Override
            public void run() {
                myTask();
            }
        }).start();

        return Service.START_STICKY;
    }


    @Override
    public IBinder onBind(Intent arg0) {
        Log.i(TAG, "Service onBind");
        return null;
    }

    @Override
    public void onDestroy() {
        isRunning = false;
        Log.i(TAG, "Service onDestroy");
    }

    private void startForeground() {
        Intent notificationIntent = new Intent(this, HomeActivity.class);

        PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);

        Notification notification = new NotificationCompat.Builder(this)
                .setSmallIcon(R.drawable.noti_logo)
                .setContentTitle("Title")
                .setContentText("Preparing...")
                .setContentIntent(pendingIntent).build();

        startForeground(1337, notification);
    }

    private void myTask() {
         // At end
        // Stop service once it finishes its task
        stopSelf();
    }
}
4

1 回答 1

2

您的代码是正确的,但由于 Instant Apps 主管中的一个已知问题,前台服务目前无法正常工作。

于 2017-06-20T14:49:30.107 回答