我希望你能帮助我.我不明白为什么会发生这种情况.
我的应用程序在调用onCreate()后立即调用onPause(),onStop(),onDestroy().屏幕是黑色的.当我按下主页按钮时,onPause(),onStop(),onRestart(),onStart()和onResume()被调用,一切都很好.这只发生在我的真实设备上(xperia z2,kitkat 4.4.2).这绝不会发生在我的平板电脑(galaxy tab3,4.x)和许多其他模拟器上.
你们有解决这个问题的方法吗?非常感谢你.
这是Logcat:
05-07 16:16:32.882: I/System.out(5149): onstart() called
05-07 16:16:32.882: I/System.out(5149): onresume() called
05-07 16:16:32.902: I/System.out(5149): onpause() called
05-07 16:16:32.902: I/System.out(5149): onstop() called
05-07 16:16:32.902: I/System.out(5149): ondestroy() called
05-07 16:16:33.002: D/dalvikvm(5149): GC_FOR_ALLOC freed 14423K, 28% free 59061K/80924K, paused 13ms, total 13ms
05-07 16:16:33.012: I/dalvikvm-heap(5149): Grow heap (frag case) to 72.570MB for 14745616-byte allocation
05-07 16:16:33.032: D/dalvikvm(5149): GC_FOR_ALLOC freed 9K, 10% free 73452K/80924K, paused 13ms, total 13ms
05-07 16:16:33.052: I/dalvikvm-heap(5149): Grow heap (frag case) to 79.953MB for …Run Code Online (Sandbox Code Playgroud) 我正在实施油漆应用程序.我的问题是,当我在物体上着色时.有些时候屏幕进入睡眠状态.当我清醒屏幕时,我的旧油漆丢失了.我发现它在Onpause之后自动调用OnDestroy,因此它会清除画布.如何自动停止调用Ondestroy.
当我按下我的samsumsung galaxy s2上的结束按钮时,它不会调用onDestroy方法
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
Toast.makeText(context, "destroy", Toast.LENGTH_SHORT).show();
}
Run Code Online (Sandbox Code Playgroud) 我发现了一些关于onDestroy和finish之间区别的答案。
Finish将从堆栈中删除该活动,但不会释放内存,并且不会每次都调用onDestroy。onDestroy将终止活动并释放内存。
在我的情况下:有2个活动。A是主要活动,B是带有一些EditText的活动,用于通过Volley将数据发送到服务器。
A-> B-> A
当我成功发送数据时,它将运行finish()杀死B.B被销毁了。但是我再次调用B,所有数据仍然存在(EditText的内容)。这意味着内存尚未清除。
在这个问题上有人面对吗?有我的代码:
public void update(final Context context, final Map<String,String> data,final Activity activity){//pass B
RequestQueue queue = Volley.newRequestQueue(context);
String url = "http://xxxxxxxx";
StringRequest sr = new StringRequest(Request.Method.POST,url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
activity.finish();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
//mPostCommentResponse.requestEndedWithError(error);
}
}){
@Override
protected Map<String,String> getParams(){
Map<String,String> params = data;
//data.
//params.put("user",data.get(''));
return params;
}
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String,String> params = …Run Code Online (Sandbox Code Playgroud)