Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android overridePendingTransition()从服务启动时无法正常工作_Android_Animation_Android Activity_Service - Fatal编程技术网

Android overridePendingTransition()从服务启动时无法正常工作

Android overridePendingTransition()从服务启动时无法正常工作,android,animation,android-activity,service,Android,Animation,Android Activity,Service,活动类别代码: public class Content extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //setContentView(R.layout.animation_layout); getWindow().setFlags(Wind

活动类别代码:

public class Content extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //setContentView(R.layout.animation_layout);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        ColorDrawable colorDrawable = new ColorDrawable(Color.TRANSPARENT);
        getWindow().setBackgroundDrawable(colorDrawable);

        Animation animation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.zoom_out_bounce);
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                finish();
            }
        }, animation.getDuration());
    }

    @Override
    protected void onResume() {
        super.onResume();
        overridePendingTransition(0, R.anim.zoom_out_bounce);
    }
}
服务上调用上述活动

public class LockScreenService extends Service {


    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    public void onStart(Intent intent, int i) {
        IntentFilter intentFilter = new IntentFilter("android.intent.action.SCREEN_ON");
        intentFilter.addAction("android.intent.action.SCREEN_OFF");
        intentFilter.addAction("android.intent.action.SCREEN_ON");
        registerReceiver(new LockScreenReceiver(), intentFilter);


    }

    @Override
    public void onCreate() {
        super.onCreate();

        IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON);
        filter.addAction(Intent.ACTION_SCREEN_OFF);
        filter.addAction(Intent.ACTION_BOOT_COMPLETED);

        //Set up a receiver to listen for the Intents in this Service
        receiver = new LockScreenReceiver();
        registerReceiver(receiver, filter);


        Intent i=new Intent(getApplicationContext(),Content.class);
        i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(i);
       //deviceManger.lockNow();
        });
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {

        return START_STICKY;
    }


    @Override
    public void onDestroy() {
        super.onDestroy();
    }

}
最重要的是,代码工作得很完美,但问题是

[

有人能回答我的问题吗

1.我可以从服务开始活动吗


2.当活动从服务启动时,我可以设置动画吗?

是,您可以从
服务启动
活动

android.app.Service
android.app.Context
的后代,因此您可以直接使用
startActivity

请尝试以下代码以启动活动:

 @Override
public int onStartCommand(Intent intent, int flags, int startId) {
    Intent i = new Intent();
    i.setClass(this, Content.class);
    i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(i);
    return START_NOT_STICKY;
}
您还可以在活动从服务启动时设置动画

overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
之后再写

startActivity(i)

是,您可以从
服务

android.app.Service
android.app.Context
的后代,因此您可以直接使用
startActivity

请尝试以下代码以启动活动:

 @Override
public int onStartCommand(Intent intent, int flags, int startId) {
    Intent i = new Intent();
    i.setClass(this, Content.class);
    i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(i);
    return START_NOT_STICKY;
}
您还可以在活动从服务启动时设置动画

overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
之后再写

startActivity(i)

发布您的服务类别代码..请参阅..我编辑的我的问题..发布您的服务类别代码..请参阅..我编辑的我的问题..是的..我在我的项目中包含了此代码,但仍然不起作用。目前我的问题是..如何解决上述错误..imgae上显示的是谁…(如何从服务设置当前屏幕的动画?)@KalsariyaDevindra改为在onStartCommand方法中调用startActivity…每当客户端调用startService()时,都会调用onStartCommand()。是的…我的项目中也包含了这段代码,但目前它仍然不起作用。我的问题是…如何解决上述错误…imgae上显示的是谁…(如何从服务中设置当前屏幕的动画?)@KalsariyaDevindra在onStartCommand方法中调用startActivity…每当客户端调用startService()时,都会调用onStartCommand()。