Dari utama saya activity
, saya perlu memanggil kelas dalam dan dalam metode di dalam kelas, saya perlu menunjukkan AlertDialog
. Setelah menutupnya, saat tombol OK ditekan, teruskan ke Google Play untuk membeli.
Segala sesuatunya bekerja dengan sempurna untuk sebagian besar waktu, tetapi untuk beberapa pengguna ini macet builder.show()
dan saya dapat melihat "android.view.WindowManager$BadTokenException:
Tidak dapat menambahkan jendela "dari log kerusakan. Harap sarankan.
Kode saya kurang lebih seperti ini:
public class classname1 extends Activity{
public void onCreate(Bundle savedInstanceState) {
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
setContentView(R.layout.<view>);
//call the <className1> class to execute
}
private class classNamename2 extends AsyncTask<String, Void, String>{
protected String doInBackground(String... params) {}
protected void onPostExecute(String result){
if(page.contains("error"))
{
AlertDialog.Builder builder = new AlertDialog.Builder(classname1.this);
builder.setCancelable(true);
builder.setMessage("");
builder.setInverseBackgroundForced(true);
builder.setNeutralButton("Ok",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton){
dialog.dismiss();
if(!<condition>)
{
try
{
String pl = "";
mHelper.<flow>(<class>.this, SKU, RC_REQUEST,
<listener>, pl);
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
});
builder.show();
}
}
}
}
Saya juga telah melihat kesalahan di lansiran lain di mana saya tidak meneruskan ke yang lain activity
. Sederhana seperti ini:
AlertDialog.Builder builder = new AlertDialog.Builder(classname1.this);
builder.setCancelable(true);
//if successful
builder.setMessage(" ");
builder.setInverseBackgroundForced(true);
builder.setNeutralButton("Ok",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton){
// dialog.dismiss();
}
});
builder.show();
}
//send to some other activity
. Saya pikir jika Anda akan mengomentari bagian di mana Anda akan pergi ke Aktivitas baru, kesalahan ini akan hilang. Kesalahan ini tampaknya terjadi karena dialog sebelum Anda ditutup sepenuhnya, aktivitas baru Anda dimulai. Di onPostExecute()
, Anda memiliki dialog peringatan dan Anda memberikan konteks login
Aktivitas. Tapi Anda menavigasi ke aktivitas lain, jadi konteksnya menjadi salah. Karenanya Anda mendapatkan kesalahan ini! Lihat stackoverflow.com/questions/15104677/… pertanyaan serupa.