活动类代码:
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);
}
}
高于Activty在Service
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.我可以在从服务开始活动时设置动画吗?
答案 0 :(得分:0)
是的,您可以从activity
service
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)