Java android-内存管理
我正在构建一个自定义锁屏,并面临RAM使用问题 服务占用的RAM最初为3MB。锁屏显示完成后,增加到8MB,并随着锁屏的后续启动而不断增加 我能够用下面的示例代码重现这个问题 MyService.java:Java android-内存管理,java,android,memory-management,service,broadcastreceiver,Java,Android,Memory Management,Service,Broadcastreceiver,我正在构建一个自定义锁屏,并面临RAM使用问题 服务占用的RAM最初为3MB。锁屏显示完成后,增加到8MB,并随着锁屏的后续启动而不断增加 我能够用下面的示例代码重现这个问题 MyService.java: public void onCreate() { IntentFilter filter = new IntentFilter(); filter.addAction(Intent.ACTION_SCREEN_ON); mReceiver = new MyReceiv
public void onCreate() {
IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_SCREEN_ON);
mReceiver = new MyReceiver();
registerReceiver(mReceiver, filter);
}
MyReceiver.java
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
Intent startIntent = new Intent(context, SecondActivity.class);
startIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_CLEAR_TOP);
context.startActivity(startIntent);
}
}
MainActivity.java:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
startService(new Intent(this, MyService.class));
}
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
setContentView(R.layout.activity_two);
}
@Override
public void onBackPressed() {
finish();
}
SecondActivity.java:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
startService(new Intent(this, MyService.class));
}
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
setContentView(R.layout.activity_two);
}
@Override
public void onBackPressed() {
finish();
}
activity_main.xml和activity_two.xml各自只包含一个文本视图