我希望你能帮助我,一旦我通过工具栏中的(弹出)菜单选项退出我的应用程序,我就会有一个泄露的窗口.如果我通过正常方法退出应用程序一切都很好.
有人可能会帮忙吗?我似乎无法找到错误,我正在努力找到一个合适的解决方案.我有2个静态字符串变量声明,但我想这不是问题.
许多事先提前.
以下是菜单的相关代码:
public class LoginActivity extends AppCompatActivity {
//
private Object mState = null;
private Object HIDE_MENU = null;
//
@Override
protected void onCreate(Bundle savedInstanceState) {
//
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// inflate menu from xml
MenuInflater mInflater = this.getMenuInflater();
mInflater.inflate(R.menu.menu_main, menu);
if (mState == HIDE_MENU) {
menu.getItem(0).setVisible(false);
}
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.settings:
// Unassigned
return true;
case R.id.exit:
this.finish(); …Run Code Online (Sandbox Code Playgroud) 我oAuth在应用程序中使用Twitter 库。用户使用Twitter帐户登录。
在活动A中,可以使用Twitter登录。用户登录后,我想启动没有历史记录的活动B。这是我所有的东西:
首先,,Manifest.xml因此我设置launchMode=singleTask为Twitter api请求:
<activity
android:name=".A_Activity"
android:label="@string/app_name"
android:launchMode="singleTask"
android:theme="@android:style/Theme.Black.NoTitleBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="my_twitter_scheme" />
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)
这是我开始活动B的方式:
Intent i = new Intent(A.this, B.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
Run Code Online (Sandbox Code Playgroud)
注意:我正在通过BroadcastReceiver实例调用活动B。
当我登录时,我的接收器正确地开始了活动B,但是不幸的是,当我按下“后退”按钮时,应用程序又回到了活动A。
我想这差不多了launchMode,正如我所说,Twitter需要这种选择。我究竟做错了什么?任何帮助或建议(也许关于Twitter)都将是很棒的。
我已经解析了JSON数据listview,现在我想让它可以离线使用.有没有办法在手机上保存JSON数据,以便在手机离线时可以看到数据?
有人知道一个例子吗?
编辑现在工作:
public class MainActivity extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
new TheTask().execute();
}
class TheTask extends AsyncTask<Void, Void, JSONArray> {
InputStream is = null;
String result = "";
JSONArray jArray = null;
ProgressDialog pd;
@Override
protected void onPostExecute(JSONArray result) {
super.onPostExecute(result);
pd.dismiss();
ArrayList<String> list= new ArrayList<String>();
try {
for(int i=0;i<result.length();i++) {
JSONObject jb = result.getJSONObject(i) ;
String name = jb.getString("name")+" "+jb.getString("Art");
list.add(name);
}
} catch(Exception e) {
e.printStackTrace();
}
setListAdapter(new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, …Run Code Online (Sandbox Code Playgroud) 我正在开发我的第一个Android应用程序,我想在用户点击我的应用程序中的登录按钮时显示进度对话框.所以我在集成应用的AsyncTask,如登录注销成功完成,但问题是,在成功登录像LoginActivity这给我的错误已经泄露,由于进度对话框窗口中的所有操作.如何关闭进度对话框并更新UI.
请参考以下代码并告诉我一些变化
以下是LoginActivity
public class LoginActivity extends SherlockActivity {
.................
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
sessionmngr = new SessionManager(this);
//check the user login or not
if (sessionmngr.isLoggedIn()) {
Intent checkLoginIntnt = new Intent(this,ProjectFragActivity.class);
startActivity(checkLoginIntnt);
}
setContentView(R.layout.activity_login);
........
}
// onclick listener when click on login activity
public void LoginToBookingScape(View v) throws JSONException {
username = edtTxtUserName.getText().toString();
userpsw = edtTxtUserPsw.getText().toString();
if ((username.trim().length() > 0)&&(userpsw.trim().length() > 0)) {
JsonWebService jsonWebs = new JsonWebService();
jsonWebs.execute(loginUrl);
}else {
............
}
}
Run Code Online (Sandbox Code Playgroud)
以下是在LoginActivity中扩展AsyncTask的Inner类 …
在我的启动画面中,我做了它,以便检测是否启用了wifi或3g.如果不是,则会出现一个对话框,提示用户退出并打开其中一个.如果它打开,则代码将继续.我的logcat中一直有一个关于我的活动有一个泄漏窗口的错误.我不知道如何解决这个问题.代码和logcat如下.有任何想法吗?
这是我的代码:
//create alert dialog for wifi and 3g
connectionDialog = new AlertDialog.Builder(SplashMain.this).create();
Log.d(TAG, "dialog created");
connectionDialog.setTitle("Wifi or 3G not detected. Please enable either Wifi or 3G");
connectionDialog.setButton("Exit", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
});
wifiHandler = new Handler();
setContentView(R.layout.splashscreen); //Make the splash screen load first
Thread splashScreenTimer = new Thread(){ //create a timer for the splash screen
public void run(){ //create a run class
Looper.prepare(); //prepare looper
try{ //methods within the run …Run Code Online (Sandbox Code Playgroud) 我正在开发音乐播放器的应用程序.我面临的错误就像.
'*.MusicPlayerTabWidget已泄露ServiceConnection*
请给你评论.我也分享了我的Logcat.
05-01 10:38:03.226: W/KeyCharacterMap(4225): Using default keymap
05-01 10:38:03.429: E/ActivityThread(4225): Activity com.pvMusic.pvm.MusicPlayerTabWidget has leaked ServiceConnection com.pvMusic.pvm.MusicPlayerTabWidget$1@4051c6f0 that was originally bound here
05-01 10:38:03.429: E/ActivityThread(4225): android.app.ServiceConnectionLeaked: Activity com.pvMusic.pvm.MusicPlayerTabWidget has leaked ServiceConnection com.pvMusic.pvm.MusicPlayerTabWidget$1@4051c6f0 that was originally bound here
05-01 10:38:03.429: E/ActivityThread(4225): at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:938)
05-01 10:38:03.429: E/ActivityThread(4225): at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:833)
05-01 10:38:03.429: E/ActivityThread(4225): at android.app.ContextImpl.bindService(ContextImpl.java:879)
05-01 10:38:03.429: E/ActivityThread(4225): at android.content.ContextWrapper.bindService(ContextWrapper.java:347)
05-01 10:38:03.429: E/ActivityThread(4225): at com.pvMusic.pvm.MusicPlayerTabWidget.onStart(MusicPlayerTabWidget.java:175)
05-01 10:38:03.429: E/ActivityThread(4225): at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1129)
05-01 10:38:03.429: E/ActivityThread(4225): at android.app.Activity.performStart(Activity.java:3791)
05-01 10:38:03.429: E/ActivityThread(4225): at …Run Code Online (Sandbox Code Playgroud) 我想要做的是从服务器获取文件.相同的代码使用sdcard运行f9,但是当我从thorugh线程获取文件时,我的logcat中出现以下错误.
我的代码如下:
public class Map extends Activity
{
//
private GraphicsView mGLView;
//private GisGLRenderer m_GisRenderer;
final static String RESULT_KEY="result";
final static int REQ_CODE=1001;
AlertDialog m=null;
public class LoadFile extends AsyncTask<String,String,String>
{
ProgressDialog Asycdialog = new ProgressDialog(Map.this);
@Override
protected void onPreExecute() {
//set message of the dialog
Asycdialog.setMessage("Loading File");
Asycdialog.setButton(DialogInterface.BUTTON_NEGATIVE,"Cancel",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
//To change body of implemented methods use File | Settings | File Templates.
}
});
//show dialog
Asycdialog.show();
super.onPreExecute();
}
protected …Run Code Online (Sandbox Code Playgroud) 我有一个问题,当我使用json解析一个活动时,第一次它在前面运行非常好,但第二次当我想运行相同的活动时,它返回窗口泄漏错误.这个问题的解决方案是什么?
错误:
05-20 12:02:14.579: ERROR/WindowManager(321): Activity org.shopzilla.android.search.SearchResultActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@44fab6b8 that was originally added here
05-20 12:02:14.579: ERROR/WindowManager(321): android.view.WindowLeaked: Activity org.shopzilla.android.search.SearchResultActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@44fab6b8 that was originally added here
05-20 12:02:14.579: ERROR/WindowManager(321): at android.view.ViewRoot.<init>(ViewRoot.java:247)
05-20 12:02:14.579: ERROR/WindowManager(321): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:148)
05-20 12:02:14.579: ERROR/WindowManager(321): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
05-20 12:02:14.579: ERROR/WindowManager(321): at android.view.Window$LocalWindowManager.addView(Window.java:424)
05-20 12:02:14.579: ERROR/WindowManager(321): at android.app.Dialog.show(Dialog.java:241)
05-20 12:02:14.579: ERROR/WindowManager(321): at android.app.ProgressDialog.show(ProgressDialog.java:107)
05-20 12:02:14.579: ERROR/WindowManager(321): at android.app.ProgressDialog.show(ProgressDialog.java:90)
05-20 12:02:14.579: ERROR/WindowManager(321): at org.shopzilla.android.search.SearchResultActivity.onCreate(SearchResultActivity.java:126)
05-20 12:02:14.579: ERROR/WindowManager(321): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
05-20 12:02:14.579: ERROR/WindowManager(321): at …Run Code Online (Sandbox Code Playgroud) 我尝试添加AlertDialog来重命名,如下面的代码:
Button b = (Button)findViewById(R.id.btn);
b.setOnClickListener(
new OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder renameDialog = new AlertDialog.Builder(AActivity.this);
renameDialog.setTitle("Rename");
final EditText newName = new EditText(AActivity.this);
newName.setText(FilePath[i]);
renameDialog.setView(newName);
renameDialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
}
});
renameDialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
}
});
renameDialog.show();
}
}
Intent it = new Intent(AActivity.this, BActivity.class);
it.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(it);
}
});
Run Code Online (Sandbox Code Playgroud)
但是错误发生了.
Activity AActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@2b0278a8 that was originally added here …Run Code Online (Sandbox Code Playgroud)