You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@weex.apache.org by "武晨 (JIRA)" <ji...@apache.org> on 2018/06/25 10:39:00 UTC

[jira] [Updated] (WEEX-474) Toast ,crash!

     [ https://issues.apache.org/jira/browse/WEEX-474?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

武晨 updated WEEX-474:
--------------------
    Affects Version/s: 0.18
             Priority: Blocker  (was: Major)
          Description: 
when the app's WXInstance destroy, but Weex page call toast(),sometimes app crash, because null point exception    *context is null !!!*, inside toast().

 

code class *WXModalUIModule*:

@JSMethod(uiThread = true)
 public void toast(String param) {

String message = "";
 int duration = Toast.LENGTH_SHORT;
 if (!TextUtils.isEmpty(param)) {
 try

{ param = URLDecoder.decode(param, "utf-8"); JSONObject jsObj = JSON.parseObject(param); message = jsObj.getString(MESSAGE); duration = jsObj.getInteger(DURATION); }

catch (Exception e)

{ WXLogUtils.e("[WXModalUIModule] alert param parse error ", e); }

}
 if (TextUtils.isEmpty(message))

{ WXLogUtils.e("[WXModalUIModule] toast param parse is null "); return; }

if (duration > 3)

{ duration = Toast.LENGTH_LONG; }

else

{ duration = Toast.LENGTH_SHORT; }

if (toast == null) {

{color:#ff0000}*//crash here!!!! sometime, mWXSDKInstance.getContext() is null  !!!!*{color}
 t*oast = Toast.makeText(mWXSDKInstance.getContext(), message, duration);*
 } else

{ toast.setDuration(duration); toast.setText(message); }

toast.setGravity(Gravity.CENTER, 0, 0);
 toast.show();
 }

 

ps:when weex page closed, and wxSDKInstance destroy,but weex page still working on background like asynchronous request(network),on this time.when the request is back, and call toast(),now context is null,bug show!

  was:
when the app's WXInstance destroy, but Weex page call toast(),sometimes app crash, because null point exception    *context is null !!!*, inside toast().

 

code class *WXModalUIModule*:

@JSMethod(uiThread = true)
public void toast(String param) {

 String message = "";
 int duration = Toast.LENGTH_SHORT;
 if (!TextUtils.isEmpty(param)) {
 try {
 param = URLDecoder.decode(param, "utf-8");
 JSONObject jsObj = JSON.parseObject(param);
 message = jsObj.getString(MESSAGE);
 duration = jsObj.getInteger(DURATION);
 } catch (Exception e) {
 WXLogUtils.e("[WXModalUIModule] alert param parse error ", e);
 }
 }
 if (TextUtils.isEmpty(message)) {
 WXLogUtils.e("[WXModalUIModule] toast param parse is null ");
 return;
 }

 if (duration > 3) {
 duration = Toast.LENGTH_LONG;
 } else {
 duration = Toast.LENGTH_SHORT;
 }
 if (toast == null) {

{color:#FF0000}*//crash here!!!! sometime, mWXSDKInstance.getContext() is null  !!!!*{color}
 t*oast = Toast.makeText(mWXSDKInstance.getContext(), message, duration);*
 } else {
 toast.setDuration(duration);
 toast.setText(message);
 }
 toast.setGravity(Gravity.CENTER, 0, 0);
 toast.show();
}


> Toast ,crash!
> -------------
>
>                 Key: WEEX-474
>                 URL: https://issues.apache.org/jira/browse/WEEX-474
>             Project: Weex
>          Issue Type: Bug
>          Components: Android
>    Affects Versions: 0.16, 0.18
>            Reporter: 武晨
>            Assignee: codefurture
>            Priority: Blocker
>             Fix For: 0.18
>
>
> when the app's WXInstance destroy, but Weex page call toast(),sometimes app crash, because null point exception    *context is null !!!*, inside toast().
>  
> code class *WXModalUIModule*:
> @JSMethod(uiThread = true)
>  public void toast(String param) {
> String message = "";
>  int duration = Toast.LENGTH_SHORT;
>  if (!TextUtils.isEmpty(param)) {
>  try
> { param = URLDecoder.decode(param, "utf-8"); JSONObject jsObj = JSON.parseObject(param); message = jsObj.getString(MESSAGE); duration = jsObj.getInteger(DURATION); }
> catch (Exception e)
> { WXLogUtils.e("[WXModalUIModule] alert param parse error ", e); }
> }
>  if (TextUtils.isEmpty(message))
> { WXLogUtils.e("[WXModalUIModule] toast param parse is null "); return; }
> if (duration > 3)
> { duration = Toast.LENGTH_LONG; }
> else
> { duration = Toast.LENGTH_SHORT; }
> if (toast == null) {
> {color:#ff0000}*//crash here!!!! sometime, mWXSDKInstance.getContext() is null  !!!!*{color}
>  t*oast = Toast.makeText(mWXSDKInstance.getContext(), message, duration);*
>  } else
> { toast.setDuration(duration); toast.setText(message); }
> toast.setGravity(Gravity.CENTER, 0, 0);
>  toast.show();
>  }
>  
> ps:when weex page closed, and wxSDKInstance destroy,but weex page still working on background like asynchronous request(network),on this time.when the request is back, and call toast(),now context is null,bug show!



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)